以下语句在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?

我正在编写一个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?
  ..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);
}