如果我们在方法中抛出异常main并且不处理它,它将正常工作.其实
public static void main(String[] args) throws IOException {
throw new IOException(); //OK
}
Run Code Online (Sandbox Code Playgroud)
但是Java要求在程序中处理任何已检查的异常,因此IOException应该处理.在这种情况下谁实际处理IOException?
注意,Java语言规范定义如果它包含一个包含catch子句的try块,则处理Exception,该子句的类型是Exception的超类型.
在我们的一个项目中,我们仍然必须使用JSF 1.2 + Tomcat 6,问题是当我向https服务器发送-request并尝试在托管bean中获取请求的URL时,如下所示:
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest)context.getRequest();
String url = request.getRequestURL().toString()
Run Code Online (Sandbox Code Playgroud)
发送请求的按钮只是一个提交按钮,如下所示:
<h:form id="contactform">
<h:commandButton id="submit" action="#{forgotPasswordBean.doSend}"
</h:form>
Run Code Online (Sandbox Code Playgroud)
我得到了http基于URL的intead https.在Web浏览器的调试面板中,我确保https实际发送了一个-request,但是URL包含一个只是http请求的链接.什么问题或者只是一个错误?
我想写一个类型安全的代码.这是我尝试过的:
public interface ResultTronsformer<T>{
public T tranform(T t);
}
public class BigDecimalTransformer implements ResultTRansformer<BigDecimal>{
public BigDecimal transform(BigDecimal t){
return t.setScale(0);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我定义了看起来像的Column接口
public interface Column{
public ResultTransformer<?> getTransformer();
}
Run Code Online (Sandbox Code Playgroud)
并希望在方法中使用它
public class Report{
private Map<Column, Object> columnValuePairs;
public void putIntoACollection(Column c, Object columnsValue){
ResultTransformer<?> rt = c.getTransformer();
columnValuePairs.put(c, rt.transform(o)); //Error: Couldn't convert Object
//to the capture of wildcard
}
}
Run Code Online (Sandbox Code Playgroud)
如何重新设计设计以达到理想的类型安全性?也许我应该在运行时进行类型检查(抛出异常)?
aspectJ中的CodeSignature是什么?我试图找到JavaDocs,但没有找到任何有用的东西.对于Instance,您的以下签名是CodeSignature:
pointcut log() : execution(@Log * *(..));
before() : log() {
String[] names = ((CodeSignature) thisJoinPoint.getSignature()).getParameterNames();
}
Run Code Online (Sandbox Code Playgroud)
是否有一个JoinPoint,thisJoinPoint.getSignature()这不是一个CodeSignature?
我正在阅读Richard Warburton撰写的Java 8书,并想出了这个:
某些操作在有序流上更昂贵.这个问题可以通过消除排序来解决.为此,请调用流的
unordered方法.[...]
我对此非常困惑.假设我们有Stream<Integer> stream = Arrays.asList(1, 2, 3, 4).stream();
由于List<Integer>定义了流(某些)操作的遭遇顺序可能无效率地执行.这是为什么?
它如何影响处理以及什么使它变慢?为了使事情更快,在这种情况下,我们应该将其称为
Stream<Integer> stream = Arrays.asList(1, 2, 3, 4).stream().unordered();
Run Code Online (Sandbox Code Playgroud)
?听起来很奇怪,至少可以说......
我只是看了一下List.flatMap宣言,对此感到有些惊讶.
final override def flatMap[B, That](f: A => GenTraversableOnce[B])
(implicit bf: CanBuildFrom[List[A], B, That]): That
Run Code Online (Sandbox Code Playgroud)
在哪里object List定义:
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, List[A]] =
ReusableCBF.asInstanceOf[GenericCanBuildFrom[A]]
Run Code Online (Sandbox Code Playgroud)
因此,如果我们调用flatMapa,List我们将获得List并且我没有看到That类型中的任何点,如果它总是被推断为List[B](因为implicit).
我正在阅读 akka 文档,并在理解他们实现Gossip 的方式时遇到了一些麻烦。(文档在这里)。让我困惑的部分(强调我的):
\n\n\n\n\n周期性地,默认是每1秒,每个节点选择另一个随机节点来发起一轮八卦。如果少于\xc2\xbd 的\n 节点位于已见集合中(已经看到新状态),则\n 集群闲话3 次,而不是每秒一次。这种调整后的八卦间隔是在状态改变后的早期传播阶段加速收敛过程的一种方法。
\n
因此,如果八卦轮处于开始阶段(少于 \xc2\xbd 节点已看到当前状态),则来自已见集合的节点开始每秒发送 3 个八卦而不是一个。但如果八卦聚合发生了,他们怎么知道这一点(他们仍然每秒发送 3 次八卦)。或者,也许收敛就像任何其他“集群事件”一样在整个集群中传播?
\n我从不修改自己的集合,只存储过程,我需要一些建议。我想编写一个自定义聚合,该聚合将返回整数行的最大值并将其递增10。我该怎么做?我尝试了这个:
CREATE AGGREGATE incremented_max ( v ) (
SFUNC = max,
STYPE = integer,
INITCOND = max + 10
)
Run Code Online (Sandbox Code Playgroud)
但这没用。有人可以帮我吗?
我得到了错误:
ERROR: syntax error at or near "+"
LINE 4: INITCOND = max + 10
Run Code Online (Sandbox Code Playgroud)
老实说,我不知道它应该如何工作。
例如,在下面的注释中:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface EndOfTheCurrentDay {
//some staff
}
Run Code Online (Sandbox Code Playgroud)
显然,我们不能将注释应用于类型的字段,例如,Integer。但在它的实现方式中,注释的使用可能是不安全的。如何防止将注释应用到除 之外的字段java.util.Date?有可能吗?
我有两个LocalDates:
LocalDate date1;
LocalDate date2;
//...
Run Code Online (Sandbox Code Playgroud)
如何查找这些日期之间的天数?
java ×7
scala ×2
akka ×1
annotations ×1
aspectj ×1
collections ×1
exception ×1
generics ×1
gossip ×1
implicit ×1
java-8 ×1
java-stream ×1
jsf ×1
postgresql ×1
servlets ×1
sql ×1