如何在Java中使用c#get和set方法。
我正在尝试将一些c#代码转换为java,但遇到了一点困难 我有以下代码,我想知道如何用Java实现CurrentState行如何在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
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的值以消除语法错误?