Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 不可比较类型:字符串和类名_Java - Fatal编程技术网

Java 不可比较类型:字符串和类名

Java 不可比较类型:字符串和类名,java,Java,我想做一个程序,可以在图书馆里搜索书籍。但我在该列表中搜索一本书的if部分发现了错误: incomparable types: String and perpus 主要有两类代码: package stackoverflow.types; import java.util.Scanner; public class Perpustakaan { public static void main(String[] args) { Scanner in = new Sca

我想做一个程序,可以在图书馆里搜索书籍。但我在该列表中搜索一本书的if部分发现了错误:

incomparable types: String and perpus
主要有两类代码:

package stackoverflow.types;

import java.util.Scanner;

public class Perpustakaan {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // Teknologi
        arrayBuku buku1 = new arrayBuku();
        buku1.Perpus[0] = new perpus("Penggunaan Bahasa C++ Untuk Robotik", "Dijeh Zedd", "Teknologi");
        buku1.Perpus[1] = new perpus("Pemrograman iPhone Untuk Pemula", "Martin Gerixx", "Teknologi");
        buku1.Perpus[2] = new perpus("Pemrograman Assembly Untuk Microprocessor", "Cakar Kuning", "Teknologi");

        buku1.Perpus[3] = new perpus("Sistem Digital Untuk Hobby", "Skrilek Gondrong", "Teknologi");

        buku1.Perpus[4] = new perpus("CSS dan PHP Untuk Website Cantik", "Dipha Kapur Barus", "Teknologi");

        // Filsafat
        buku1.Perpus[5] = new perpus("Filsafat Yunani dan Relevansinya Masa Kini", "Kripton Thor", "Filsafat");

        buku1.Perpus[6] = new perpus("Pengantar Filsafat I", "Logan Laura", "Filsafat");

        buku1.Perpus[7] = new perpus("Filsafat Plato dan Aristoteles", "Petrus Parkerus", "Filsafat");

        buku1.Perpus[8] = new perpus("Filsafat Untuk Mahasiswa Sosiologi", "Clark Kent", "Filsafat");

        buku1.Perpus[9] = new perpus("Relevansi Filsafat dengan Agama", "Loki Mydog", "Filsafat");

        // Sejarah
        buku1.Perpus[10] = new perpus("Nazi vs Marxisme, Sepanjang Sejarah", "Thomas Muller", "Sejarah");

        buku1.Perpus[11] = new perpus("Kebenaran Adanya Hitler di Indonesia", "Mesut Ozil", "Sejarah");

        buku1.Perpus[12] = new perpus("Jejak Raja Alexander", "Goy Agoy", "Sejarah");

        buku1.Perpus[13] = new perpus("Sejarah Thailand", "Panyanut Machaporn", "Sejarah");

        buku1.Perpus[14] = new perpus("Majapahit: Berdiri, Runtuh", "Salsabila Multazam", "Sejarah");

        // Agama
        buku1.Perpus[15] = new perpus("Cara Mencapai Nirwana Tanpa Moksa", "Mahagyana", "Agama");

        buku1.Perpus[16] = new perpus("Tafsir Perjanjian Baru Alkitab Untuk Masa Kini", "Petrus Marwanto", "Agama");

        buku1.Perpus[17] = new perpus("Pengetahuan Islam Untuk Masyarakat Awam", "Syafril Mawardah", "Agama");

        buku1.Perpus[18] = new perpus("Nilai-Nilai Dewa Wisnu Untuk Manusia", "I Gede Sukarna", "Agama");

        buku1.Perpus[19] = new perpus("Ajaran Konfusius", "John Xie", "Agama");

        // Psikologi
        buku1.Perpus[20] = new perpus("Psikologi Bagi Militer", "Letnan Ilham Irwinansyah M.Psi", "Psikologi");

        buku1.Perpus[21] = new perpus("Orang Aneh dari Sudut Pandang Psikologi", "Ichsan Eftepe", "Psikologi");

        buku1.Perpus[22] = new perpus("Psikologi balita", "Dr. Prof. Ir. Fajrul M.Psi", "Psikologi");

        buku1.Perpus[23] = new perpus("Penanganan Sikap Psikologi Lansia", "Imad Muzhaffar, S.Psi", "Psikologi");

        buku1.Perpus[24] = new perpus("Biologi Psikologi Jilid III", "Abas Saritua Gultom", "Psikologi");

        // Politik
        buku1.Perpus[25] = new perpus("Pengantar Ilmu Politik I", "Maikel Fernanda Pasaribu", "Politik");

        buku1.Perpus[26] = new perpus("Menangani Kelicikan Politik di Indonesia", "Aldy Bahagia", "Politik");

        buku1.Perpus[27] = new perpus("Politik: Kolonial, Jepang, Kemerdekaan, Hingga Reformasi", "Aldy Belajar",
                "Politik");

        buku1.Perpus[28] = new perpus("Politik di Partai Masa Kini", "Dr. Raihan Suwanto, M.Pol", "Politik");

        buku1.Perpus[29] = new perpus("Sistem Politik Liberal", "dr. Dr. Ir. Samuel Bayu Sentosa", "Politik");

        // Fiksi
        buku1.Perpus[30] = new perpus("Dilan Versi Baru Yey", "Naufal Eginda", "Fiksi");

        buku1.Perpus[31] = new perpus("Senja Dilambai Bayu", "Febryanto Marthin Simanjuntak", "Fiksi");

        buku1.Perpus[32] = new perpus("Terbuai Angin", "Matsari Buerte", "Fiksi");

        buku1.Perpus[33] = new perpus("Distraksi Kalbu", "Manuel Nicholas", "Fiksi");

        buku1.Perpus[34] = new perpus("Melayangkan Asa di Kala Gelap", "Ihramsyah Faishal", "Fiksi");

        String cari;
        System.out.println("Masukkan buku yang ingin dicari: ");
        cari = in.nextLine();
        if (cari == buku1.Perpus[1]) {

        }

    }

}

class perpus {
    private String penulis;
    private String namaBuku;
    private String kategori; // teknologi, filsafat, sejarah,agama, psikologi,
                                // politik dan fiksi.

    public perpus() {
        namaBuku = "";
        penulis = "";
        kategori = "";
    }

    public perpus(String a, String b, String c) {
        namaBuku = a;
        penulis = b;
        kategori = c;
    }

    public void setPenulis(String s) {
        penulis = s;
    }

    public void setNamaBuku(String s) {
        namaBuku = s;
    }

    public void setKategori(String s) {
        kategori = s;
    }

    public void cariBuku(String s) {
        if (s.equalsIgnoreCase(namaBuku) || s.equalsIgnoreCase(kategori) || s.equalsIgnoreCase(penulis)) {
            System.out.println("Buku tersedia");
        } else {
            System.out.println("Buku tidak tersedia");
        }

    }

    public void setBuku(String a, String b, String c) {
        namaBuku = a;
        penulis = b;
        kategori = c;
    }

    public void cetak() {
        System.out.println("Buku Anda berjudul: " + namaBuku);
        System.out.println("Penulis buku Anda adalah: " + penulis);
        System.out.println("Kategori buku Anda adalah: " + kategori);
        System.out.println("=========================================");

    }
}

class arrayBuku {
    private String penulis;
    private String namaBuku;
    private String kategori;
    public int jumlah = 35;
    perpus[] Perpus = new perpus[jumlah];
}
对不起,我使用印尼语来表示变量名和书籍属性,如作者、标题和类别。有人知道如何修复错误吗?谢谢

String cari;
System.out.println("Masukkan buku yang ingin dicari: ");
cari = in.nextLine();
if(cari == buku1.Perpus[1])
由于cari是一个字符串,您可能会遇到的一个问题是在java中,在字符串上使用==将字符串对象与另一个对象进行比较。 建议使用cari.equalsother字符串

此外,您正在将字符串与Perpus对象进行比较。最终你应该使用

if(cari.equals(buku1.Perpus[1].get###()))

无论Perpus cari的任何属性与之相关,我猜这一行都会抛出错误

 if(cari == buku1.Perpus[1])
因为您正在将字符串与数组中的Perpus对象进行比较

您需要向类中添加一些getter方法,以便可以将数组元素中的字符串与字符串cari进行比较

例如:

然后:


第一步是读取准确完整的错误消息,其中包含错误的位置。然后阅读java编码指南。类名以大写字母开头,变量名以小写字母开头。不,我只是想用“if语句”来搜索列表中的一本书,但是有一个错误,字符串不能与类进行比较。如何修复?这里的代码太多了。学会写一篇文章,你经常会自己解决这个问题。不相关,但你完全违反了。类名应以大写字母开头,字段名应以小写字母开头。你做的恰恰相反。
class perpus {
    private String penulis;
    private String namaBuku;
    private String kategori; 

    String getPenulis()
    {
    return penulis;
    }
    //insert other class members here

    }
if(cari.equals(buku1.Perpus[1].getPenulis()))
//do whatever