以下语句在java中的等价物是什么?
我正在编写一个javafx应用程序,我想在声明类实例的同一语句中调用函数并设置变量 我可以像下面的代码一样在dart中这样做,但是我可以在java中这样做吗以下语句在java中的等价物是什么?,java,dart,Java,Dart,我正在编写一个javafx应用程序,我想在声明类实例的同一语句中调用函数并设置变量 我可以像下面的代码一样在dart中这样做,但是我可以在java中这样做吗 class MyClass{ int someVar =1; someFun(){ print("something"); } } void main(){ MyClass newClass = new MyClass() ..someVar = 2 // how can I do this in java?
class MyClass{
int someVar =1;
someFun(){
print("something");
}
}
void main(){
MyClass newClass = new MyClass()
..someVar = 2 // how can I do this in java?
..someFun();
print(newClass.someVar);
}
您可以使用setter或(不是很好的主意)将这些字段声明为公共:
class MyClass{
int someVar = 1;
void setSomeVar(int x){
someVar = x;
}
someFun(){
print("something");
}
}
void main(){
MyClass newClass = new MyClass()
newClass.serSomeVar(2);
..someFun();
print(newClass.someVar);
}
----
class MyClass{
public int someVar = 1;
someFun(){
print("something");
}
}
void main(){
MyClass newClass = new MyClass()
newClass.someVar = 2;
..someFun();
print(newClass.someVar);
}
根据我对你的问题的理解,以下内容将解决你的问题 您需要在类中将变量声明为public,然后替换
int someVar = 1
与
在函数中,你可以这样调用它
void main(){
MyClass newClass = new MyClass()
newClass.someVar = 2 // how can I do this in java?
newClass.someFun();
print(newClass.someVar);
}
更好的方法是使用setter和getter,但您可以从这个开始
希望这有帮助事实上,您不能在Java中这样做-至少不能在Dart样式中这样做。双点(..)表示法是Dart语言的一个特性,Java根本没有这个特性。但是,对于这个简单的示例,您可以获得如下相同的结果:
class MyClass {
int someVar = 1;
MyClass setSomeVar(int i) {
someVar = i;
return this;
}
MyClass someFun() {
System.out.println("something");
return this;
}
}
public static void main(String[] args) {
MyClass newClass = new MyClass()
.setSomeVar(2)
.someFun();
System.out.println(newClass.someVar);
}
与Dart一样,这只适用于(通常)没有返回值的方法(例如,
void
方法)。使用setter或(不是很好的主意)以您在最后一行中的方式声明这些字段,例如:newClass.someVar=2
Java不支持这一点;这很麻烦。Groovy和Kotlin都很简单哦好吧,chrylis-on strike请注意,我说我使用的是javafx框架,所以我不能更改类主体并将其变量公开或定义setter,因为框架源代码是不可更改的。请注意,我说我使用的是javafx框架,所以我不能更改类主体并将其变量公开或定义setter,因为框架源代码不可用changeable@AmmarJavaFX只是Java,框架中的所有类都在需要时提供适当的访问器,所以我不理解这句话。您能否为需要更改但无法更改的实际特定示例提供代码?如果合适的话,可以编辑你的问题,或者问一个新问题。
class MyClass {
int someVar = 1;
MyClass setSomeVar(int i) {
someVar = i;
return this;
}
MyClass someFun() {
System.out.println("something");
return this;
}
}
public static void main(String[] args) {
MyClass newClass = new MyClass()
.setSomeVar(2)
.someFun();
System.out.println(newClass.someVar);
}