数据类
在java中的数据类如下代码
public class CellPhone {
String brand;
double price;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public boolean equals(Object o) {
if (o instanceof CellPhone) {
CellPhone other = (CellPhone) o;
return other.brand.equals(brand) && other.price == price;
}
return false;
}
@Override
public int hashCode() {
return brand.hashCode() +(int) price;
}
@Override
public String toString() {
return "CellPhone{" +
"brand='" + brand + '\'' +
", price=" + price +
'}';
}
}
上段代码只是简单地复写了equals,hashCode,toString,get,sett方法 而这仅仅是为了声明这是一个数据类,看一下kotlin中如何写的
class CellPhone {
data class CellPhone(val brand: String, val price: Double)
}
关键的地方就是data关键字 声明出来data关键字 就代表这是一个数据列 kotlin中会自动生成equals,hashCode,toString,get,set方法 简化了代码量
单例类
java中:
public class SingleInstance {
private static SingleInstance singleInstance;
public static SingleInstance getSingleInstance() {
if (singleInstance == null) {
synchronized (SingleInstance.class) {
singleInstance = new SingleInstance();
}
}
return singleInstance;
}
public SingleInstance() {
}
public void printSingeInstance() {
Log.d("TAG", "printSingeInstance: ");
}
}
调用:
SingleInstance singleInstance = SingleInstance.getSingleInstance();
singleInstance.printSingeInstance();
kotlin中
object TestInstance {
fun singleInstance(){
println("测试测试测试")
}
}
调用:
TestInstance.singleInstance()