Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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 安装Project Lombok后处理RealmObject descedant时出错_Java_Android_Realm_Lombok - Fatal编程技术网

Java 安装Project Lombok后处理RealmObject descedant时出错

Java 安装Project Lombok后处理RealmObject descedant时出错,java,android,realm,lombok,Java,Android,Realm,Lombok,这是我想要存储在领域数据库中的类。构建应用程序时会抛出错误:如果声明了自定义构造函数,则必须声明没有参数的默认公共构造函数。但在使用realm之前,它是正常的-默认构造函数不是必需的。我还收到了类似这样的警告:警告:18,1生成equals/hashCode实现,但不调用超类,即使该类不扩展java.lang.Object。如果这是有意的,请将“@EqualsAndHashCodecallSuper=false”添加到您的类型中。如何修复错误 import android.content.Con

这是我想要存储在领域数据库中的类。构建应用程序时会抛出错误:如果声明了自定义构造函数,则必须声明没有参数的默认公共构造函数。但在使用realm之前,它是正常的-默认构造函数不是必需的。我还收到了类似这样的警告:警告:18,1生成equals/hashCode实现,但不调用超类,即使该类不扩展java.lang.Object。如果这是有意的,请将“@EqualsAndHashCodecallSuper=false”添加到您的类型中。如何修复错误

import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import java.util.ArrayList;

import io.realm.RealmObject;
import kg.zuber.aqe_android.R;
import lombok.Data;
import lombok.Getter;

@Data
public class Measure extends RealmObject {
    @Getter
    int id;
    @NonNull
    String name;
    @Getter
    @NonNull
    String slug;

    public Measure(int id, @NonNull String name, @NonNull String slug) {
        super();
        this.id = id;
        this.name = name;
        this.slug = slug;
    }

    @Override
    public String toString() {
        return this.name;
    }

    public static class MeasureAdapter extends ArrayAdapter<Measure> {
        private final Context mContext;
        private ArrayList<Measure> measures;

        public MeasureAdapter(Context context, ArrayList<Measure> mMeasures) {
            super(context, R.layout.blue_spinner_item, mMeasures);
            this.mContext = context;
            measures = mMeasures;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Measure device = measures.get(position);
            if (convertView == null) {
                convertView = LayoutInflater.from(getContext())
                        .inflate(R.layout.blue_spinner_item, parent, false);
            }
            TextView textView = (TextView)convertView.findViewById(R.id.text);
            textView.setText(device.name);
            return convertView;
        }
    }
}
您可以使用以下选项,而不仅仅是@Data:

@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper=false)
并删除手工编写的构造函数

此外,您不需要@Getter注释。如果要检查字段是否为空,应使用@lombok.NonNull或导入它,而不是android.support.annotation.NonNull

披露:我是lombok开发人员。

您可以使用以下内容,而不仅仅是@Data:

@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper=false)
并删除手工编写的构造函数

此外,您不需要@Getter注释。如果要检查字段是否为空,应使用@lombok.NonNull或导入它,而不是android.support.annotation.NonNull


披露:我是一名lombok开发人员。

很长一段时间以来,Realm一直要求使用默认构造函数。添加该选项可以修复错误。这个警告似乎与Lombok有关。很长一段时间以来,Realm一直要求使用默认构造函数。添加该选项可以修复错误。这个警告似乎与龙目山有关。