Java中的方法修饰符排序

Java中的方法修饰符排序,java,methods,syntax,modifier,Java,Methods,Syntax,Modifier,据我所知,这就是典型方法的定义: modifier returnValueType methodName(list of parameters) { // Method body; } 但是,如果您有多个修饰符,(例如,公共,静态,),它们是否有特定的顺序 这是我过去考试中的一个问题的模型答案: <S> public void emptyList(CyclicQueue<S> queue) { while(!queue.isEmpty()) { queu

据我所知,这就是典型方法的定义:

modifier returnValueType methodName(list of parameters) {
    // Method body;
}
但是,如果您有多个修饰符,(例如,
公共
静态
),它们是否有特定的顺序

这是我过去考试中的一个问题的模型答案:

<S> public void emptyList(CyclicQueue<S> queue) {
    while(!queue.isEmpty()) { queue.pop(); }
}

哪一种是正确的,还是更传统的方式来排序这些修饰符?

我认为在access关键字之前加上它是不合法的。换句话说,

public <S> void emptyList(CyclicQueue<S> queue) {
    while(!queue.isEmpty()) { queue.pop(); }
}

在这里您可以看到正确的顺序:访问级别、静态、返回类型。添加泛型类型只是对返回类型的替换

我认为在access关键字前面加上是不合法的。换句话说,

public <S> void emptyList(CyclicQueue<S> queue) {
    while(!queue.isEmpty()) { queue.pop(); }
}

在这里您可以看到正确的顺序:访问级别、静态、返回类型。添加泛型类型只是对返回类型的替换

泛型类型不是修饰符,在泛型方法中应该放在返回类型之前,如

public <S> void emptyList(CyclicQueue<S> queue) {
//         ^^^^ return type
    while(!queue.isEmpty()) { queue.pop(); }
}
public void emptyList(CyclicQueue队列){
//^^^^^返回类型
而(!queue.isEmpty()){queue.pop();}
}

您的问题的模型答案将无法编译

泛型类型不是修饰符,在泛型方法中应该放在返回类型之前,如

public <S> void emptyList(CyclicQueue<S> queue) {
//         ^^^^ return type
    while(!queue.isEmpty()) { queue.pop(); }
}
public void emptyList(CyclicQueue队列){
//^^^^^返回类型
而(!queue.isEmpty()){queue.pop();}
}
您的问题的模型答案将无法编译

这为您提供了修饰符排序的大致指南

泛型也应该在公共方法之后声明

public <S> void emptyList(CyclicQueue<S> queue) {
   while(!queue.isEmpty()) { queue.pop(); }
}
public void emptyList(CyclicQueue队列){
而(!queue.isEmpty()){queue.pop();}
}
不是

public void emptyList(CyclicQueue队列){
而(!queue.isEmpty()){queue.pop();}
}
模型答案将不起作用,因为您的修改器public、protected、default of private优先于泛型类型。

这为您提供了修改器排序的大致指南

泛型也应该在公共方法之后声明

public <S> void emptyList(CyclicQueue<S> queue) {
   while(!queue.isEmpty()) { queue.pop(); }
}
public void emptyList(CyclicQueue队列){
而(!queue.isEmpty()){queue.pop();}
}
不是

public void emptyList(CyclicQueue队列){
而(!queue.isEmpty()){queue.pop();}
}

模型答案将不起作用,因为您的修饰符public、protected和private的默认值优先于泛型类型。

提供修饰符的顺序。这不是强制性的。该链接声称存在“正确顺序”是不正确的。同意。该顺序不是强制性的,但它是惯例,更易于阅读。提供修饰符的顺序。这不是强制性的。该链接声称存在“正确顺序”是不正确的。同意。该顺序不是强制性的,但它是惯例,更容易阅读。