私はあなたの元の問題は、メソッド本体の外にいたコードを持っていた疑いがあります。このデモクラスはコンパイルされて実行され、あなたがしていたことと何が正しいのかを示すコメントがあります。
public class StringTest
{
public static final String crT = "CREATE TABLE ";
public static final String inI = "INSERT INTO ";
public static final String val = " VALUES ";
public static final String[] catInsertArray = new String[13];
// you were probably doing this, which is not allowed in Java because you are writing code outside of a method body or static initializer block
//catInsertArray[0] = inI + val + "(null, 'Student Loan', 'in', 0.00, 0.00, 0.00, 0, 0);";
static
{
// static initialize your static member
catInsertArray[0] = inI + val + "(null, 'Student Loan', 'in', 0.00, 0.00, 0.00, 0, 0);";
}
public static void main(String [] args)
{
// You can put code in a method
//catInsertArray[0] = inI + val + "(null, 'Student Loan', 'in', 0.00, 0.00, 0.00, 0, 0);";
}
}
あなたの新しいコメント - あなたのペーストビンのリンクにあるコードにはいくつかの問題があります。私が持っていることの1つは、あなたがDatabaseConstants
クラスの内部にネストされたインターフェイスを宣言している理由です。あなたが定数のためのクラスを作っているので、これは不必要なようです。
さらに、static
initializer blockを除外して、配列をString
配列に配置します。以下のコードを参照してください。
package com.geistware.studentbudgetapp;
import android.provider.BaseColumns;
public class DatabaseConstants {
//Variables for DDL statements and such
public static final String crT = "CREATE TABLE ";
public static final String inI = "INSERT INTO ";
public static final String val = " VALUES ";
//Table Names
public static final String CAT_BUD_TAB = "CAT_BUD_TAB";
public static final String TWO_WEE_TAB = "TWO_WEE_TAB";
//columns from the category_budget_table
public static final String CAT_ITEM = "CAT_ITEM";
public static final String IN_OUT = "IN_OUT";
public static final String BUDGET_AMOUNT = "BUDGET_AMOUNT";
public static final String ACTUAL_AMOUNT = "ACTUAL_AMOUNT";
public static final String AMOUNT_STRAYED = "AMOUNT_STRAYED";
public static final String OVERBUDGET_TF = "OVERBUDGET_TF";
public static final String AUTOSPEND_TF = "AUTOSPEND_TF";
//Initial DDL Statements and Initial INSERT statements to populate table
public static final String createCATBUDTAB = (crT + CAT_BUD_TAB +
"(_id INTEGER PRIMARY KEY, CAT_ITEM TEXT, IN_OUT TEXT, BUDGET_AMOUNT REAL, ACTUAL_AMOUNT REAL, AMOUNT_STRAYED REAL, OVERBUDGET_TF INTEGER, AUTOSPEND_TF INTEGER);");
public static final String createTWOWEETAB = (crT + TWO_WEE_TAB +
"(_id INTEGER PRIMARY KEY, SUB_CAT_ITEM TEXT, CAT_ITEM TEXT, COST REAL, ESSENTIAL_TF INTEGER, CURRENT_LAST TEXT, WEEK_ID INTEGER);");
public static String[] catInsertArray = new String[13];
// you still need to to put this code into a static initializer block
static
{
catInsertArray[0] = inI + CAT_BUD_TAB + val + "(null, 'Student Loan', 'in', 0.00, 0.00, 0.00, 0, 0);";
}
}
しかし、定数のリストのようなもののために、私はenumerationを使用することを好むだろうが、うまくいけば、これは、少なくとも作業ビルドを取得する右のトラックにあなたを取得します。
私は混乱しています、あなたは実際に何をしたいですか? –
私は混乱していますが、上記のコードは完全に有効です。実際のSQL文が有効かどうか疑問に思っていますか? – user489041
返信ありがとうございますが、明らかに私は上記の元の投稿を編集していません。あなたはコードが完全に有効だと言っていますが、残念ながら私はまだ構文エラーを受けています。 – Holly