我还是java新手,所以我想寻求帮助,我真的不知道如何在这种情况下使用方括号,不。我甚至不知道如何使用它,我尝试了一些东西,这是结果,我现在的问题是我要添加:
schemeName += (rset.getString("scheme_name"));
schemeId += (Integer.parseInt(rset.getString("id")));
但我收到了一个错误,因为我认为我没有正确使用它。感谢您的帮助并向我解释如何使用它以及出现了什么问题。
所有代码:
String[] schemeName; // TODO, []
Integer[] schemeId; // TODO, []
String HTML = "";
Connection conn = null;
try
{
conn = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = conn.prepareStatement("SELECT * FROM buffer_scheme_list WHERE player_id=?");
statement.setInt(1, player.getObjectId());
ResultSet rset = statement.executeQuery();
while (rset.next())
{
try
{
schemeName += (rset.getString("scheme_name"));
schemeId += (Integer.parseInt(rset.getString("id")));
}
catch(Exception e)
{
// Blank
}
}
}
如果我改为:
String schemeNamel
Integer schemeId;
我在进一步的代码中遇到了另一个问题(所以我不能这样做); 进一步代码: 尝试了这个,但后来我在另外的代码中遇到了另一个问题:
if (schemeName.length > 0)
{
String MESSAGE = "";
String Temp = "";
int i=0, j=0;
Temp="<tr><td> </td> <td> </td></tr>";
String[] TRS = Temp.split(" ");
while (i <= schemeName.length - 1)
{
if (j>2)
{
j = 0; // vienas is dvejiu arba if j>2 (&& arba ||), j=0;
MESSAGE += TRS[j]+"<button value=\""
+schemeName[i]+
"\" action=\"bypass -h Quest "+QUEST_LOADING_INFO+" cast "
+schemeId[i]+" x x\" width=130 height=25 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">"
+TRS[j+1];
}
i+=1;
j+=2;
}`
答案 0 :(得分:2)
您已宣布array
String[] schemeName; // TODO, []
Integer[] schemeId; // TODO, []
您正在尝试为数组指定值
schemeName += (rset.getString("scheme_name"));
schemeId += (Integer.parseInt(rset.getString("id")));
你做不到。
数组是一个容器对象,它包含固定数量的单个类型的值。创建数组时,将建立数组的长度。创建后,其长度是固定的。
此外,未初始化数组
答案 1 :(得分:1)
schemeName
和schemeId
是数组。他们不支持+
操作。
Futhermore你没有初始化它们,所以它们仍然是null
。
我建议使用某种类似List或Set的集合。它们支持add
方法。
以下是使用ArrayList
的示例:
ArrayList<String> schemeName = new ArrayList<String>();
ArrayList<Integer> schemeId = new ArrayList<Integer>();
...
schemeName.add((rset.getString("scheme_name"));
schemeId.add(Integer.parseInt(rset.getString("id")));
如果您之后更喜欢使用Arrays,可以将列表转换为如下所示的数组:
String[] schemeNameArray= schemeName.toArray(new String[schemeName.size()]);
Integer[] schemeIdArray= schemeId.toArray(new Integer[schemeId.size()]);
如果schemeName
和schemeId
类似于值,则使用地图键。他们支持put
答案 2 :(得分:0)
您不需要为String和整数包含[]。您可以简单地将它们声明为
String schemeName = "";
和
Int schemeId = 0;