J'ai converti du code de java en scala dernièrement essayant de m'enseigner la langue.
Supposons que nous ayons cette classe scala:
class Person() {
var name:String = "joebob"
}
Maintenant, je veux y accéder de java je ne peux pas utiliser le notation comme je le ferais si j'étais scala.
Je peux obtenir mon contenu de var en émettant:
person = Person.new();
System.out.println(person.name());
et le mettre via:
person = Person.new();
person.name_$eq("sallysue");
System.out.println(person.name());
Cela est vraie cause notre cette personne de classe ressemble à javap:
Compiled from "Person.scala"
public class Person extends java.lang.Object implements scala.ScalaObject{
public Person();
public void name_$eq(java.lang.String);
public java.lang.String name();
}
Oui, je pourrais écrire mes propres getters/setters mais je déteste remplir des classes avec ça et ça ne fait pas une tonne de sens étant donné que je les ai déjà - je veux juste alias la méthode _ $ eq mieux. (Cela devient pire quand vous avez affaire à des choses comme antlr parce que vous devez y échapper et ça finit par ressembler à personne.name _ \ $ eq ("newname");
Note: Je préférerais avoir de mettre en place avec cela plutôt que de remplir mes cours avec d'autres méthodes setter
Alors, que feriez-vous dans cette situation