Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中使用c#get和set方法。_Java_Accessor - Fatal编程技术网

如何在Java中使用c#get和set方法。

如何在Java中使用c#get和set方法。,java,accessor,Java,Accessor,我正在尝试将一些c#代码转换为java,但遇到了一点困难 我有以下代码,我想知道如何用Java实现CurrentState行 public class StateMachine { **public static State CurrentState { get; set; }** public enum State { Init, Data, Text, Close, Invalid

我正在尝试将一些c#代码转换为java,但遇到了一点困难

我有以下代码,我想知道如何用Java实现CurrentState行

public class StateMachine
{
    **public static State CurrentState { get; set; }**
    public enum State
    {
        Init,
        Data,
        Text,
        Close,
        Invalid
    }
}
这是我为解决这个问题所做的微薄努力,但并不完全正确

    static State currentState;

public static void setCurrentState(State currentState)
{
    this.currentState = currentState;
}

public static State getCurrentState()
{
    return currentState;
}
问题现在已经得到了回答,下面是正确的工作代码,以防有人想看到它

public static State currentState;

public static State getCurrentState()
{
    return currentState;
}

public static void setCurrentState(State newState)
{
    currentState = newState;
}

使用这些getCurrentState和setCurrentState方法,我现在可以在case语句中轻松实现这一点,这是我最初的目标

要回答这个基本问题,您需要为get和set声明一个名为
state
的支持字段

public class StateMachine {

    // This is the missing part
    private static State state;

    public static State getState() {
       return state;
    }

    public static void setState(State newState) {
        state = newState;
    }
}

什么样的错误,在哪一行?你会得到什么具体的错误?它说状态不能被解析或者不是一个字段,状态不能被解析为一个变量。由于某种原因,它还使我在设置Init=0x00时出现语法错误。@HighCore构造性注释通常会帮助OP和未来用户完成他们需要的任务。我可以向getState和SetState函数添加static,但它仍然不能解决我的错误。也许我的问题不够清楚,我想知道如何处理StateMachine类,以便在switch语句中使用它来获取和设置状态。这些类成员应该是
static
,以匹配OP的C#版本。@HighCore同意。。让我编辑一下答案。我只是想找到一个解决方案。这就是我所拥有的静态currentState;public static void setCurrentState(State currentState){this.currentState=currentState;}public State getCurrentState(){return currentState;}但是它确实不喜欢将this.currentState与static.My bad.一起使用。。请看正确的答案。。你所需要的只是一个不同的变量名。啊,好吧,这就解决了它,我也更新了我的问题,让它更清晰。我是否需要在enum之外声明Init的值以消除语法错误?