'systemState' has private access in 'com.osnav.application.Data.ProtocolData'出现错误
时间: 2024-03-21 09:40:25 浏览: 14
这个错误提示表示在您的代码中,您试图访问 `ProtocolData` 类的 `systemState` 成员变量,但是这个成员变量是私有的,不能被外部访问。
解决这个问题的方法是,您可以在 `ProtocolData` 类中添加一个公共的方法,来访问和修改 `systemState` 成员变量。比如:
```java
public class ProtocolData {
private int systemState;
public int getSystemState() {
return systemState;
}
public void setSystemState(int state) {
this.systemState = state;
}
}
```
这样,您就可以通过调用 `getSystemState()` 和 `setSystemState()` 方法来访问和修改 `systemState` 成员变量了。
相关问题
'systemState' has private access in 'com.osnav.application.Data.ProtocolData'
这个错误是因为 `systemState` 变量是 `ProtocolData` 类的私有成员,无法在类外部直接访问。如果你想在外部访问该变量,可以考虑在 `ProtocolData` 类中添加一个公有的访问函数,例如:
```
public byte getSystemState() {
return systemState;
}
```
然后在外部使用该函数来获取 `systemState` 值,例如:
```
byte systemState;
if (ProtocolData.getSystemState() == POSITION_1) {
systemState = POSITION_1.getValue();
} else if (ProtocolData.getSystemState() == POSITION_2) {
systemState = POSITION_2.getValue();
} else if (ProtocolData.getSystemState() == POSITION_3) {
systemState = POSITION_3.getValue();
} else if (ProtocolData.getSystemState() == POSITION_4) {
systemState = POSITION_4.getValue();
} else if (ProtocolData.getSystemState() == MIDDLE_PROCESS) {
systemState = MIDDLE_PROCESS.getValue();
} else if (ProtocolData.getSystemState() == MAVIGATION_STAT) {
systemState = MAVIGATION_STAT.getValue();
}
```
这样就可以避免直接访问私有成员变量的错误了。
//系统状态 byte systemState =ProtocolData.systemState.POSITION_1.getValue();//todo:定义一个数组if判断 byte systemState =ProtocolData.systemState.POSITION_2.getValue(); byte systemState =ProtocolData.systemState.POSITION_3.getValue(); byte systemState =ProtocolData.systemState.POSITION_4.getValue(); byte systemState =ProtocolData.systemState.MIDDLE_PROCESS.getValue(); byte systemState =ProtocolData.systemState.MAVIGATION_STAT.getValue(); 把这段代码用if判断
可以将这段代码改写为以下形式:
```
byte systemState;
if (ProtocolData.systemState == POSITION_1) {
systemState = POSITION_1.getValue();
} else if (ProtocolData.systemState == POSITION_2) {
systemState = POSITION_2.getValue();
} else if (ProtocolData.systemState == POSITION_3) {
systemState = POSITION_3.getValue();
} else if (ProtocolData.systemState == POSITION_4) {
systemState = POSITION_4.getValue();
} else if (ProtocolData.systemState == MIDDLE_PROCESS) {
systemState = MIDDLE_PROCESS.getValue();
} else if (ProtocolData.systemState == MAVIGATION_STAT) {
systemState = MAVIGATION_STAT.getValue();
}
```
这样可以根据不同的 `ProtocolData.systemState` 值来分别赋值给 `systemState` 变量。