Java 下面的程序生成编译时错误,它表示->;类型政治不接受参数

Java 下面的程序生成编译时错误,它表示->;类型政治不接受参数,java,Java,根据我的书它是好的!它说,如果我们使用该方法编写,那么我们就不需要强制转换对象参数。为什么我会出错 import java.util.*; interface politics { //interface void politician(Object obj); } class obama implements politics <obama> //class { String job; public void politician(oba

根据我的书它是好的!它说,如果我们使用该方法编写
,那么我们就不需要强制转换
对象
参数。为什么我会出错

import java.util.*;

interface politics {    //interface
    void politician(Object obj);
}  

class obama implements politics <obama>  //class
{  
    String job;
    public void politician(obama p) {
        if(p.job.equals("president")) {
            System.out.print("You are right Obama is Mr. PRESIDENT");
        }
        else {
            System.out.print("So you say Obama is a "+job.toUpperCase());
        }
    }
}

class interface2 {   //class
    public static void main(String args[]) {    //main
        Scanner in=new Scanner(System.in);
        obama o=new obama();
        System.out.println("president or citizen?");
        String s=in.next();
        o.job=s;
        o.politician(o);
    }
}
import java.util.*;
界面政治{//interface
无效政客(对象obj);
}  
课堂奥巴马实施政治//课堂
{  
字符串作业;
公共虚无政治家(奥巴马p){
如果(p.job.equals(“主席”)){
系统输出打印(“你是对的,奥巴马是总统先生”);
}
否则{
System.out.print(“所以你说奥巴马是一个”+job.toUpperCase());
}
}
}
类接口2{//class
公共静态void main(字符串args[]){//main
扫描仪输入=新扫描仪(系统输入);
奥巴马o=新奥巴马();
System.out.println(“总统还是公民?”);
字符串s=in.next();
o、 job=s;
o、 政治家(o);
}
}

您的界面
不是通用的。在您的代码中,它应该如下所示:

interface politics<T> {
    void politician(T obj);
}
public interface Comparable<T>

旁注:请遵循Java的命名约定。
根据我的书,这是可以的