我想制作一个可以在图书馆中搜索图书的程序。但是我发现了如果在该列表中搜索一本书的部分错误:
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];
}
抱歉,我使用印尼语来表示变量名和书籍属性(如作者,标题和类别)。有谁知道如何修复错误?感谢。
答案 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