小编Rom*_*man的帖子

泛化的类和继承问题

我有一个父类Builder,可以使用Builder类型参数或其子类型进行生成:

class Builder<T extends Builder> {

    @SuppressWarnings("unchecked")
    T doSmth() {
        System.out.println("do smth");
        return (T)this;
    }
}
Run Code Online (Sandbox Code Playgroud)

它有一个子类 - BuilderChild:

class BuilderChild extends Builder<BuilderChild> {

    BuilderChild doSmthElse() {
        System.out.println("do smth else");
        return this;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,我可以doSmthBuilderChild实例上调用方法,它返回BuilderChild:

new BuilderChild().doSmth().doSmthElse();
Run Code Online (Sandbox Code Playgroud)

但是当我试图通过上面BuilderChild的行停止编译时.

class BuilderChild<T> extends Builder<BuilderChild> {

    BuilderChild doSmthElse() {
        System.out.println("do smth else");
        return this;
    }
}
...
//Compile error, because doSmth() 
//returns Builder instead of BuilderChild.
new BuilderChild().doSmth().doSmthElse(); 
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么在我生化后doSmth() …

java oop generics inheritance

1
推荐指数
1
解决办法
427
查看次数

Maven不运行groovy编译器生成的TestNG测试

我有一个java项目,测试用groovy编写.

我使用TestNG作为单元测试框架.

我也有几个用java编写的测试.

在maven test-compile阶段之后,所有测试(groovy和java)都被编译并放在类似的文件夹里面target/test-classes/.

当我想用maven运行测试时,只运行java测试.

当我尝试从IDE(IntelliJ IDEA)运行groovy测试时,它运行得很好.

我反编译了groovy测试,这就是我所拥有的:

package mypackage.core;

import groovy.lang.GroovyObject;
import groovy.lang.MetaClass;
import org.codehaus.groovy.runtime.ScriptBytecodeAdapter;
import org.codehaus.groovy.runtime.callsite.CallSite;
import org.testng.annotations.Test;

@Test
public class Sample
  implements GroovyObject
{
  public Sample()
  {
    Sample this;
    CallSite[] arrayOfCallSite = $getCallSiteArray();
    this.metaClass = $getStaticMetaClass();
    MetaClass tmp20_17 = this.metaClass;
    this.metaClass = ((MetaClass)ScriptBytecodeAdapter.castToType(tmp20_17, $get$$class$groovy$lang$MetaClass()));
    tmp20_17;
    while (true)
      return;
  }

  @Test
  public void testSomething()
  {
    CallSite[] arrayOfCallSite = $getCallSiteArray(); Registry registry = arrayOfCallSite[0].callConstructor($get$$class$mypackage$core$internal$Registry());
    arrayOfCallSite[1].call(registry, null); for (return; ; return);
  }

  static
  {
     tmp10_7 = …
Run Code Online (Sandbox Code Playgroud)

java groovy testng maven

1
推荐指数
1
解决办法
2121
查看次数

如何根据内容类型请求标头将结果呈现为 JSON 或 gsp 视图?

我想在 html-view 和 RESTful API 的控制器中重用相同的逻辑。在 Grails 中执行此操作的最佳方法是什么?

grails

1
推荐指数
1
解决办法
1034
查看次数

Java中的泛型问题

我确信我的问题很常见,我几乎可以肯定它没有简单的解决方案.

所以:我有一个界面:

public interface Task<E> extends Serializable {
    Task<E>[] splitTask (int partsNum);
    E mergeSolutions (E... solutions);
    E solveTask ();
    E getSolution ();
    Integer getId ();
    void setId (Integer id);
}
Run Code Online (Sandbox Code Playgroud)

我也有它的实现 - BubbleSortTask,它的代码并不有趣.这个设计的主要思想是:我们可以将巨大的任务分解为子任务,解决每个子任务然后合并解决方案:

    Integer[] array = {1, 4, 9, 3, 3, 0, 8, 2, 6};
    BubbleSortTask bst = new BubbleSortTask (array);
    Task[] ts = bst.splitTask (2);
    for (Task t : ts) {
        t.solveTask ();
    }
    bst.mergeSolutions (((BubbleSortTask)ts[0]).getSolution (),
                        ((BubbleSortTask)ts[1]).getSolution ());
Run Code Online (Sandbox Code Playgroud)

它运作良好.但是在一般情况下我不应该对具体实现有所了解,我想做这样的事情:

public void processTask (Task t, int subtasksNum) {
    Task[] …
Run Code Online (Sandbox Code Playgroud)

java generics

0
推荐指数
1
解决办法
148
查看次数

Spring Security基础知识

如果经过身份验证的用户具有相应的权限,如何使链接可见?

我正在使用JSF,据我所知,我应该使用rendered一个应该调用backing bean的布尔方法的组件的属性.

我甚至在不久前找到了代码,但现在我再也找不到了.那么,任何人都可以给我一个这样的布尔方法的例子,它适用于spring security吗?(或者更好的是,链接到一些描述此问题的文章).

java jsf spring spring-security

0
推荐指数
1
解决办法
666
查看次数

是否有跨浏览器的CSS方法来装饰span块中的最后一个单词?

我需要显示用户列表,该列表应如下例所示:

海伦· 伯恩斯
爱德华·费尔法克斯· 罗切斯特
伯莎安托万内特·梅森
阿黛勒 瓦伦

有没有办法在不使用javascript的情况下实现这一目标?每行应该是一个跨度,即<span>Helen</span><span>Burns</span>不可接受.

html javascript css layout

0
推荐指数
1
解决办法
1506
查看次数

如何获取对象的所有字段?

免责声明:我在python中迈出了第一步,这就是为什么这个问题可能听起来有些愚蠢.

如何列出存储的所有变量self

python

0
推荐指数
1
解决办法
575
查看次数

如何从具有NIO的文件读取Integer而不是获取BufferUnderflowException?

这段代码出了什么问题?:

ByteBuffer byteBuffer = ByteBuffer.allocate(4);
FileChannel channel = cacheFile.getChannel();
int bytesCount = channel.read(byteBuffer, offset);
int value = byteBuffer.getInt();
Run Code Online (Sandbox Code Playgroud)

最后一行总是抛出BufferUnderflowException.变量bytesCount包含4.

我在这里想念什么?

java nio

0
推荐指数
1
解决办法
1813
查看次数

jQuery ajax问题

我在jQuery的ajax函数中没有任何expirience.我想尝试简单的调用:

$.get ("ajaxsupport/login");
Run Code Online (Sandbox Code Playgroud)

我有一个带url-pattern的servlet("ajaxsupport/login").

当我输入浏览器的地址字段" http:// localhost:9090/ajaxsupport/login "时,我看到了一些结果.但$ .get(..)甚至没有打电话.

问题是什么?

我使用jquery 1.3.1

ajax jquery get

-2
推荐指数
1
解决办法
3433
查看次数

标签 统计

java ×5

generics ×2

ajax ×1

css ×1

get ×1

grails ×1

groovy ×1

html ×1

inheritance ×1

javascript ×1

jquery ×1

jsf ×1

layout ×1

maven ×1

nio ×1

oop ×1

python ×1

spring ×1

spring-security ×1

testng ×1