Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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 括号和数组声明有问题_Java_Android_Function_Error Handling_Declaration - Fatal编程技术网

Java 括号和数组声明有问题

Java 括号和数组声明有问题,java,android,function,error-handling,declaration,Java,Android,Function,Error Handling,Declaration,所以我正在处理我的应用程序,我只是试图声明一个新的字符串数组。出于某种原因,它需要一个额外的括号来结束类(即使括号很好),并且在“private String[]add句子=new String[3];“if要求”{“而不是”;”之后也需要一个括号。换句话说,它想要关闭某个东西……我不明白。也许你们可以帮个忙 package org.chinesetones.teacher; import java.util.ArrayList; import android.app.Activity; im

所以我正在处理我的应用程序,我只是试图声明一个新的字符串数组。出于某种原因,它需要一个额外的括号来结束类(即使括号很好),并且在“private String[]add句子=new String[3];“if要求”{“而不是”;”之后也需要一个括号。换句话说,它想要关闭某个东西……我不明白。也许你们可以帮个忙

package org.chinesetones.teacher;

import java.util.ArrayList;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Toast;
import android.view.View;
import android.view.View.OnClickListener;
import org.chinesetones.teacher.Sentence;

public class Game extends Activity implements OnClickListener {
private String[] addStrings = new String[3];
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.game);

// Setup button listeners...
View nextButton = findViewById(R.id.next_button);
nextButton.setOnClickListener(this);
View repeatButton = findViewById(R.id.repeat_button);
repeatButton.setOnClickListener(this);
}
public void onClick(View v){
    switch(v.getId()) {
    case R.id.next_button:
        giveSentence();
        break;
    case R.id.repeat_button:
        playSentence();
        break;
    }
}
private ArrayList<Sentence> sentences;
private String[] addSentences = new String[3];
addSentences[0] = "Hi";
addSentences[1] = "No";
addSentences[2] = "Yes";
}
package org.chinesetones.teacher;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.app.Dialog;
导入android.content.Intent;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.Gravity;
导入android.view.view;
导入android.widget.Toast;
导入android.view.view;
导入android.view.view.OnClickListener;
导入org.chinesetones.teacher.句子;
公共类游戏扩展活动实现OnClickListener{
私有字符串[]addStrings=新字符串[3];
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
//设置按钮侦听器。。。
查看下一个按钮=findViewById(R.id.next_按钮);
setOnClickListener(这个);
查看重复按钮=findViewById(R.id.repeat_按钮);
repeatButton.setOnClickListener(此);
}
公共void onClick(视图v){
开关(v.getId()){
案例R.id.next_按钮:
给定句子();
打破
案例R.id.重复按钮:
游戏句子();
打破
}
}
私刑;
私有字符串[]addSequences=新字符串[3];
添加句子[0]=“你好”;
添加句子[1]=“否”;
添加句子[2]=“是”;
}
尚未创建GiveSession()和PlayStation()。错误如下

说明资源路径位置类型 令牌“;”上的语法错误,{此令牌游戏后应为。java/ChineseTones/src/org/ChineseTones/teacher line 39 java问题

说明资源路径位置类型 语法错误,插入“}”以完成ClassBody Game.java/ChineseTones/src/org/ChineseTones/teacher第43行java问题


谢谢!

您不能用这种方式初始化类字段

改变

private String[] addSentences = new String[3];
addSentences[0] = "Hi";
addSentences[1] = "No";
addSentences[2] = "Yes";

另一种选择是直接做

private String[] addSentences = new String[3];
并在类构造函数中初始化数组

public Game()
{
   addSentences[0] = "Hi";
   addSentences[1] = "No";
   addSentences[2] = "Yes";
   ...
}
public Game(){
   addSentences[0] = "Hi"; 
   addSentences[1] = "No"; 
   addSentences[2] = "Yes"; 
   ....
}

您只能在方法之外有声明。因此,您的add语句赋值

addSentences[0] = "Hi"; 
addSentences[1] = "No"; 
addSentences[2] = "Yes"; 
必须位于方法、构造函数中,或者是声明的一部分

对于一个小的静态定义列表(如您的),您可以执行以下操作:

 private String[] addSentences = {"Hi","No","Yes"}; 
如果您有一个更大的初始化列表,您可以将该逻辑放入构造函数中

public Game()
{
   addSentences[0] = "Hi";
   addSentences[1] = "No";
   addSentences[2] = "Yes";
   ...
}
public Game(){
   addSentences[0] = "Hi"; 
   addSentences[1] = "No"; 
   addSentences[2] = "Yes"; 
   ....
}

好的,谢谢你,如果这个数组有大约500个索引,我是否需要像这样手动添加它们,还是有其他方法?@Wes看看我编辑的答案是否有用。你可以在构造函数中初始化数组元素。如果值(u存储的字符串)不同(如你的情况),则必须手动添加。如果需要存储生成值的某种形式的公式,则可以在array.length()上运行循环并存储它们。我的问题是它们是句子,每个句子都不同,因此我想我唯一的选择是手动键入要使用的所有句子(可能超过200个)。想不出其他方法。谢谢你的帮助。这就是第一个答案中提到的所有内容。你没看到吗?哇,几乎一样。我一定是在键入答案时错过了它。