似乎newtype
定义只是data
遵循某些限制的定义(例如,只有一个构造函数),并且由于这些限制,运行时系统可以newtype
更有效地处理s.并且未定义值的模式匹配处理略有不同.
但是假设Haskell只知道data
定义,没有newtype
s:编译器不能自己发现给定的数据定义是否遵守这些限制,并自动更有效地对待它?
我确定我错过了什么,必须有更深层次的理由.
所有,
我试图确保在捕获IOException时关闭了我用BufferedReader打开的文件,但看起来好像我的BufferedReader对象超出了catch块的范围.
public static ArrayList readFiletoArrayList(String fileName, ArrayList fileArrayList)
{
fileArrayList.removeAll(fileArrayList);
try {
//open the file for reading
BufferedReader fileIn = new BufferedReader(new FileReader(fileName));
// add line by line to array list, until end of file is reached
// when buffered reader returns null (todo).
while(true){
fileArrayList.add(fileIn.readLine());
}
}catch(IOException e){
fileArrayList.removeAll(fileArrayList);
fileIn.close();
return fileArrayList; //returned empty. Dealt with in calling code.
}
}
Run Code Online (Sandbox Code Playgroud)
Netbeans抱怨它在catch块中"找不到符号fileIn",但是我想确保在IOException的情况下Reader被关闭.如果没有第一次尝试/捕获构造的丑陋,我怎么能这样做呢?
关于这种情况下的最佳实践的任何提示或指示表示赞赏,
java exception-handling try-catch ioexception bufferedreader
我有几个ANTLR生成的代码文件,目前我对它们的工作方式很满意。我想在Visual Studio(2008)中配置我的项目,以便调试器跳过那些文件中定义的方法。我怎样才能做到这一点?
对于C中的全局变量
int aglobal = 5;
什么时候5被加载器转移到aglobal,它如何知道将5放入全局.
与函数中的静态声明相同的情况.喜欢
int afunc(){static int astatic = 8; 回归; }
静态库和共享库有什么区别?
我使用Eclipse,有几种项目类型,包括静态库和共享库?一个人比另一个人有优势吗?
我正在 blogspot.com 上阅读一些博客,我想知道:是否可以更改博客的 URL,使其显示所有帖子?我的意思是,它将显示所有博客条目,而无需一遍又一遍地单击“旧帖子”。
说我同意
var s = $('#something');
Run Code Online (Sandbox Code Playgroud)
接下来我想测试jQuery是否找到#something,即我想测试是否s
为空.
我可以信赖isempty()
它:
function isempty(o) {
for ( var i in o )
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
或者由于jQuery对象是数组,我想我可以测试一下s.length
.
但似乎既不是jQuery的成语,也不是jQueryesque.你有什么建议?
我正在尝试创建一个复合组件,以便在我的Seam应用程序中使用,并且我遇到了最简单的"hello,world"组件的问题.
我在{jboss deploy} /application.ear/application.war/resources/greet中放置了一个名为hello.xhtml的文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite">
<head>
<title>My First Composite Component</title>
</head>
<body>
<composite:interface>
<composite:attribute name="who"/>
</composite:interface>
<composite:implementation>
<h:outputText value="Hello, #{cc.attrs.who}!"/>
</composite:implementation>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
现在在home.xhtml中,位于我的webapp的根目录({jboss deploy} /application.ear/application.war/home.xhtml):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:g="http://java.sun.com/jsf/composite/greet"
xmlns:s="http://jboss.com/products/seam/taglib"
template="layout/template.xhtml">
<ui:define name="content">
<div id="content">
<g:hello who="World"/>
<br/>
</div>
</ui:define>
</ui:composition>
Run Code Online (Sandbox Code Playgroud)
但是我的"你好,世界"没有显示,我也没有收到任何错误消息,即使我打开com.sun和javax.faces类别的调试级别日志记录.
我已经验证资源目录在适当的位置,因为添加目录resources/images/test.jpg,然后将其添加到home.xhtml:
h:graphicImage value="#{resource['images:test.jpg']}"/>
Run Code Online (Sandbox Code Playgroud)
显示图像的结果.我只是不知道为什么JSF没有从greet目录中获取我的xhtml文件.
有任何想法吗?
我如何将一些参数传递给从另一个类运行函数的新线程?我要做的是将一个或多个变量传递给一个位于另一个类中的函数,并由一个新线程调用.
我试图这样做>
Functions functions = new Functions();
string[] data;
Thread th = new Thread(new ParameterizedThreadStart(functions.Post()));
th.Start(data);
Run Code Online (Sandbox Code Playgroud)
但它显示错误"方法'没有重载'后'需要0个参数"
有任何想法吗 ?
我需要提供"具有行号的源代码文档",它基本上只是源代码的PDF,带有语法高亮和行号.是否有任何现有的Windows命令行工具,我可以从脚本调用"构建发布版本"脚本?
现在我正在使用VC++进行手动操作,VC++甚至不是代码用于TI处理器的开发环境,也是PDF打印机驱动程序,它会弹出我打印的每个文件.