相关疑难解决方法(0)

Kotlin的吸气剂和二传手

例如,在Java中,我可以自己编写getter(由IDE生成)或者在lombok中使用@Getter之类的注释 - 这非常简单.

然而,Kotlin 默认拥有getter和setter.但我无法理解如何使用它们.

我想说,就像Java一样:

private val isEmpty: String
        get() = this.toString() //making this thing public rises an error: Getter visibility must be the same as property visibility.
Run Code Online (Sandbox Code Playgroud)

那么吸气剂如何工作?

getter-setter kotlin

59
推荐指数
6
解决办法
5万
查看次数

Java中的Getters/setter

我是Java新手,但对ActionScript 3有一些OOP经验,所以我试图依靠我所知道的东西进行迁移.

在ActionScript 3中,您可以使用get和set关键字创建getter和setter,这意味着您在类中创建方法并通过该类的实例的属性访问数据.我可能听起来很复杂,但事实并非如此.这是一个例子:

class Dummy{

    private var _name:String;

    public function Dummy(name:String=null){
        this._name = name;
    }

    //getter
    public function get name():String{
        return _name;
    }

    //setter
    public function set name(value:String):void{
    //do some validation if necessary
        _name = value;
    }

}
Run Code Online (Sandbox Code Playgroud)

我会name在一个对象中访问:

var dummy:Dummy = new Dummy("fred");
trace(dummy.name);//prints: fred
dummy.name = "lolo";//setter
trace(dummy.name);//getter
Run Code Online (Sandbox Code Playgroud)

我怎么用Java做到这一点?

只是拥有一些公共领域是不可能的.我注意到有一种在方法前面使用get和set的约定,我很好.

例如,

class Dummy{

    String _name;

    public void Dummy(){}

    public void Dummy(String name){
        _name = name;
    }

    public String getName(){
        return _name;
    }

    public void setName(String …
Run Code Online (Sandbox Code Playgroud)

java getter setter accessor actionscript-3

22
推荐指数
2
解决办法
4万
查看次数

为什么Java 7中没有本机属性?

有没有合理的理由,为什么原生属性不会成为Java 7的一部分?

java properties java-7

18
推荐指数
4
解决办法
6471
查看次数

Java的"属性"是否与C#中的属性相同?

在C#中,您可以使用属性使数据字段可公开访问(允许用户直接访问它),同时保留在这些直接访问的字段上执行数据验证的功能.Java有类似的东西吗?对于Instance,假设存在一个带有以下实现的C#类(见下文):

public class newInt{

    public newInt(){...}

    public int x{
        get{ return this.x }
        set{ this.x = isValid(value) }
    }
}

private static int isValid(int value){...}
Run Code Online (Sandbox Code Playgroud)

类中的这个定义允许用户在从中检索值并为其赋值时"自然地"使用数据字段'x'.以下是它将如何在主要使用.

public class Test{

    public static void main(String[] args){

        newInt a = new newInt();
        a.x = 50;

        int b = a.x;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是...... java也可以这样做吗?如果是这样,它叫什么?

c# java properties

18
推荐指数
2
解决办法
5153
查看次数

如何使用DateTimeFormatter可移植格式化java.util.Date?

如何java.util.DateDateTimeFormatter便携式格式化?

我不能用

Date in = readMyDateFrom3rdPartySource();
LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());
ldt.format(dateTimeFormatter);
Run Code Online (Sandbox Code Playgroud)

因为我担心使用ZoneId.systemDefault()会引入一些变化.

我需要准确格式化我拥有的对象.

UPDATE

注意:时间就是时间.不是空间.时区是经度的非常粗略的度量,即空间.我不需要它.只有时间(和日期).

更新2

我编写了以下程序,证明,它Date不仅包含正确的"即时":

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DataNature2 {

   public static void main(String[] args) throws ParseException {

      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

      String dateTimeString = "1970-01-01 00:00:01";

      Date date = simpleDateFormat.parse(dateTimeString);

      System.out.println("1 second = " + date.getTime());

   }
}
Run Code Online (Sandbox Code Playgroud)

输出如下:

1 second = -10799000
Run Code Online (Sandbox Code Playgroud)

虽然它应该是

1 second = 1000
Run Code Online (Sandbox Code Playgroud)

如果Date是"即时". …

java date localdate

-27
推荐指数
2
解决办法
1万
查看次数