State checking for extending abstract classes
还没有人认领这个 Issue。
评估
调研方向
使用 URLConnectionRefinements 注解、URLExt 和 Testurl 示例重现该报告。首先跟踪在 URLExt 上调用方法时,如何检查从 java.net.URLConnection 继承的状态细化。完成的标准是:setDoInput(false) 被接受,而 getContent() 被拒绝,因为对象尚未达到已连接状态。
由索引模型根据 Issue 内容生成。
描述
Currently, reusing state refinements from an abstract superclass in a concrete class is not fully implemented, and gives an error like the one below.
Example for abstract class java.net.URLConnection:
@ExternalRefinementsFor("java.net.URLConnection")
@StateSet({"setup", "connected"})
public interface URLConnectionRefinements {
@StateRefinement(to="setup(this)")
public void URLConnection(URL url);
@StateRefinement(from="setup(this)")
public void setDoInput(boolean doinput);
@StateRefinement(from="setup(this)", to="connected(this)")
public void connect();
@StateRefinement(from="connected(this)")
public Object getContent();
}
Extended in class URLExt:
class URLExt extends URLConnection{
public URLExt(URL url){
super(url);
}
@Override
public void connect() throws IOException {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'connect'");
}
}```
Tested in:
```java
class Testurl {
void test() throws URISyntaxException, IOException {
URLExt u = new URLExt(new URI("http://example.com").toURL());
u.setDoInput(false); // should not be an error but it is
u.getContent(); // should be an error
}
}
- 主要语言
- Java
- 星标
- 67
- 派生
- 36
- 平均合并
- 10 天 18 小时
- 30 天内合并 PR
- 3
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
liquid-java/liquidjava 的其他 Issue
-
enhancement
liquid-java/liquidjava#240 · 已指派 1 人 ·
-
enhancement ide
难度 3/5 1-2 天 新手友好度 45/100
liquid-java/liquidjava#206 ·
-
tests
难度 2/5 1-3 小时 新手友好度 25/100
liquid-java/liquidjava#198 ·
-
tests
难度 4/5 3-5 天 新手友好度 25/100
liquid-java/liquidjava#197 ·
-
tests
难度 4/5 3-5 天 新手友好度 35/100
liquid-java/liquidjava#196 · 2 条评论 ·
查看 liquid-java/liquidjava 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 85/100
-
bug frontend maui-pilot
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 2/5 1-3 小时 新手友好度 76/100
objectionary/eo-graphs#74 ·
-
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 2/5 1-3 小时 新手友好度 65/100