无与伦比的类型:字符串和类名

时间:2017-03-17 18:19:35

标签: java

我想制作一个可以在图书馆中搜索图书的程序。但是我发现了如果在该列表中搜索一本书的部分错误:

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];
}
抱歉,我使用印尼语来表示变量名和书籍属性(如作者,标题和类别)。有谁知道如何修复错误?感谢。

2 个答案:

答案 0 :(得分:4)

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

由于 cari 是一个字符串,您可能遇到的一个问题是在字符串中使用“==”将字符串对象与另一个对象进行比较。 建议使用 cari .equals(其他字符串)。

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

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

###是 Perpus cari与

相关的任何属性

答案 1 :(得分:3)

我猜这个错误被抛出

 if(cari == buku1.Perpus[1])

由于您在此处将String与Perpus对象进行比较。

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

例如:

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