私はPHPから来て、javaに移動しました。java - 親関数/スコープから子プロパティにアクセスする
多くのデータベースエンティティのCRUD操作を作成するために、クラス/クラスを実装しようとしていますが、私は自分自身(そして皆さん)に質問しています。すべてのエンティティは (親からそれらのほとんど)その機能を継承し、私は、コンパイラの警告を回避するために、親クラスDatabaseEntityにtableNameのとidFieldNameを実装する必要があります。 javaは親のプロパティ(これは明らかにヌルです)を使用しようとしているようですが、その機能は親に実装されているためです。
この問題を解決する方法はありますか?どんなフィードバックも大いに評価されます!
abstract class DatabaseEntity {
protected String tableName;
protected String idFieldName;
public DataRecord readFromDB(int recordID) throws SQLException {
...
String sqlStatement = String.format("SELECT * FROM %s WHERE %s = %s", this.tableName, this.idFieldName, recordID); // Exception shows this line
...
}
}
class DatabaseRecord extends DatabaseEntity {
protected String tableName = "DatabaseRecordTable";
protected String idFieldName = "ID";
public void getRecord() {
...
DataRecord record = this.readFromDB(1); // leads to java.lang.NullPointerException: null
...
}
}
免責事項:私はgithubのに新たなんだと私は私の記事をimprooving上の任意のフィードバックをapreciate :)