【发布时间】:2019-06-10 02:44:54
【问题描述】:
我在这里阅读了很多问题,但我现在仍然没有找到任何正确答案
所以我有这样的代码
VisitReport.java
public class VisitReport{
public static final String TABLE_NAME = "VisitReport";
public static final String COLUMN_ID = "ID";
public static final String COLUMN_VisitPurpose = "VisitPurpose";
public static final String COLUMN_VisitResult = "VIsitResult";
private int id;
private String VisitPurpose;
private String VisitResult;
public static final String CREATE_TABLE =
"CREATE TABLE " + TABLE_NAME + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COLUMN_VisitPurpose + " TEXT,"
+ COLUMN_VisitResult + " TEXT,"
+ ")";
public VisitReport() {
}
public VisitReport(
int id,
String VisitPurpose,
String VisitResult
){
this.id = id;
this.VisitPurpose = VisitPurpose;
this.VisitResult = VisitResult;
}
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getVisitPurpose() { return VisitPurpose; }
public void setVisitPurpose(String VisitPurpose) { this.VisitPurpose = VisitPurpose;}
public String getVisitResult() { return VisitResult; }
public void setVisitResult(String VisitResult) { this.VisitResult = VisitResult;}
}
DatabaseHelper.java(我使用的一段代码)
public VisitReport getVisitReport(long id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(VisitReport.TABLE_NAME,
new String[]{
VisitReport.COLUMN_ID,
VisitReport.COLUMN_VisitPurpose,
VisitReport.COLUMN_VisitResult,
},
VisitReport.COLUMN_ID + "=?",
new String[]{String.valueOf(id)}, null, null, null, null);
if (cursor != null){
cursor.moveToFirst();
}
VisitReport vr = new VisitReport(
cursor.getInt(cursor.getColumnIndex(VisitReport.COLUMN_ID)),
cursor.getString(cursor.getColumnIndex(VisitReport.COLUMN_VisitPurpose)),
cursor.getString(cursor.getColumnIndex(VisitReport.COLUMN_VisitResult))
cursor.close();
return vr;
}
我想使用bridge module 将值传递给react native,但出现错误
Cannot convert argument of type class mypackage.VisitReport
这是我尝试过的代码:
@ReactMethod
public void getVisitReport(int id, Callback cb) {
DatabaseHelper db = new DatabaseHelper(reactContext);
cb.invoke(db.getVisitReport(id));
}
找到this question 作为我的参考我仍然不明白这些是什么意思,因为当我记录getVisitReport() 的值时,我得到了mypackage.VisitReport@12d960c9,但我不知道这是什么意思
我做错了吗?任何人都可以帮助我如何使它工作?
【问题讨论】:
-
getVisitReport() 正在返回一个对象。 'mypackage.VisitReport@12d960c9' 是该对象的字符串表示形式。
-
@Goofynose 那么我怎样才能得到这个对象的值呢?
-
实现toString()获取对象的值。
-
@flix 你所说的价值是什么意思?我猜你想访问对象的属性之一(
id,visitPurpose,...)?您可以通过执行类似db.getVisitReport(id).getVisitPurpose()的操作来访问这些值 -
@Goofynose 我想获取所有这些对象的值,但我不知道如何获取,我认为这些对象的值类似于
{id:0, visitPurpose:"bar", visitResult:"baz"}-cmiiw
标签: java android sqlite react-native getter-setter