Java/Jython 假设:构造函数应该是 public
Java/Jython Hypothesis: constructor should be public
我不是 Java 程序员,但我对 C++、Scala 和 Python 中的 OOP 非常了解,所以我会理解抽象的解释。
我正在使用这样的 java 代码:
public class my_class implements ObjectReader<double[][]>, ObjectWriter<double[][]> {
private static final my_class instance = new my_class();
private my_class() {};
public static my_class getInstance(){
return instance
}
public double[][] functionName{String argument) {
// this is the function I want to use, but it is giving me some errors.
}
... MORE CODE AND BRACKETS AND SYNTACTICALLY CORRECT STUFF ...
ObjectReader 和 ObjectWriter 在此库中定义为:
public interface ObjectReader<T>{
T functionName(String argument);
}
然后在 jython 2.7 中,我想使用这段代码(正确的导入完成和你所拥有的)
my_class_instance = path.to.package.my_class()
data_i_want = my_class_instance.functionName("A String")
然后就是错误
TypeError: No visible constructors for class path.to.package.my_class)
a) 我认为在 java 中如果你在 class 主体中指定一个构造函数,它是一个重写的构造函数。 'principal' 构造函数将像这样给出:
public class my_class(type1 arg1, type2 arg 2, ...){
...
}
my_class 是否需要构造函数的参数?
b) 我试过像这样从 jython 代码中删除括号:
my_class_instance = path.to.package.my_class // No more () here!
data_i_want = my_class_instance = my_class_instance.functionName("A String")
并得到错误:
TypeError: functionName() expected 2 args; got 1
我在网上看到很多关于这两个问题的帖子,但如果有人能马上知道这个谜语的答案,那将是一个很好的节省时间的方法。现在是凌晨 2 点,我想睡觉了!
这会产生错误,因为 my_class
:
没有可见的构造函数
my_class_instance = path.to.package.my_class()
这不起作用,因为它为您提供了对 class 的引用,而不是实例:
my_class_instance = path.to.package.my_class
但是您有一个名为 getInstance()
的工厂方法。所以用它来获取一个实例:
my_class_instance = path.to.package.my_class.getInstance()
我不是 Java 程序员,但我对 C++、Scala 和 Python 中的 OOP 非常了解,所以我会理解抽象的解释。
我正在使用这样的 java 代码:
public class my_class implements ObjectReader<double[][]>, ObjectWriter<double[][]> {
private static final my_class instance = new my_class();
private my_class() {};
public static my_class getInstance(){
return instance
}
public double[][] functionName{String argument) {
// this is the function I want to use, but it is giving me some errors.
}
... MORE CODE AND BRACKETS AND SYNTACTICALLY CORRECT STUFF ...
ObjectReader 和 ObjectWriter 在此库中定义为:
public interface ObjectReader<T>{
T functionName(String argument);
}
然后在 jython 2.7 中,我想使用这段代码(正确的导入完成和你所拥有的)
my_class_instance = path.to.package.my_class()
data_i_want = my_class_instance.functionName("A String")
然后就是错误
TypeError: No visible constructors for class path.to.package.my_class)
a) 我认为在 java 中如果你在 class 主体中指定一个构造函数,它是一个重写的构造函数。 'principal' 构造函数将像这样给出:
public class my_class(type1 arg1, type2 arg 2, ...){
...
}
my_class 是否需要构造函数的参数?
b) 我试过像这样从 jython 代码中删除括号:
my_class_instance = path.to.package.my_class // No more () here!
data_i_want = my_class_instance = my_class_instance.functionName("A String")
并得到错误:
TypeError: functionName() expected 2 args; got 1
我在网上看到很多关于这两个问题的帖子,但如果有人能马上知道这个谜语的答案,那将是一个很好的节省时间的方法。现在是凌晨 2 点,我想睡觉了!
这会产生错误,因为 my_class
:
my_class_instance = path.to.package.my_class()
这不起作用,因为它为您提供了对 class 的引用,而不是实例:
my_class_instance = path.to.package.my_class
但是您有一个名为 getInstance()
的工厂方法。所以用它来获取一个实例:
my_class_instance = path.to.package.my_class.getInstance()