我是Guava的新手(说实话,我不是"非常新的",我是这个主题的新手)所以我决定阅读一些文档并在阅读时非常惊讶:
com.google.common.base.Preconditions.checkNotNull(...)
我不明白这个方法的意义.这意味着,而不是做:
myObject.getAnything();
Run Code Online (Sandbox Code Playgroud)
(这可能导致NullPointerExceptionif myObject为null)
我应该用
checkNotNull(myObject).getAnything();
Run Code Online (Sandbox Code Playgroud)
这将抛出NullPointerException如果myObject是空和返回myObject,如果它不为空.
我很困惑,这可能是有史以来最愚蠢的问题,但......
这有什么意义?考虑到我能想到的任何情况,这两行与结果完全相同.
我甚至认为后者更具可读性.
所以我一定错过了什么.它是什么?
我得到这个名字冲突错误,我不知道我应该如何解决这个问题.我有两个类,我使用重载方法"createSensors".这里简化的是生成问题的代码:
public abstract class ClassA {
public static List<Sensor> createSensors(Collection<? extends ClassA> list) {
List<Sensor> sensors = new ArrayList<Sensor>();
for (ClassA s : list) {
sensors.add(s.getSensor());
}
return sensors;
}
}
public abstract class ClassB extends ClassA {
public static List<Sensor> createSensors(Collection<? extends ClassB> list) {
List<Sensor> sensors = new ArrayList<Sensor>();
for (ClassB s : list) {
sensors.add(s.getSensor());
}
return sensors;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在摆弄AspectJ并想出一个我似乎无法正确实现的想法(我的生活故事).
我已经定义了一个方面:
package my.package;
import org.aspectj.lang.annotation.*;
import org.aspectj.lang.ProceedingJoinPoint;
@Aspect
public class MyAspect {
@Pointcut("execution(* *(..)) && this(o)")
public void instanceMethod(Object o) {}
@Pointcut("within(@Marker *)")
public void methodsFromMarkedClasses() {}
@Around("methodsFromMarkedClasses() && instanceMethod(o)")
public Object markedMethodsAdvice(ProceedingJoinPoint joinPoint, Object o) throws Throwable {
// do awesome stuff
return null; //<- not the actual return, just added this so that my head wouldn't hurt
}
}
Run Code Online (Sandbox Code Playgroud)
我已经定义了@Marker一个空的注释.
我们的想法是在markedMethodsAdvice任何时候对标记为的类的对象调用方法时执行建议@Marker.甚至(这里是棘手的部分):
情况1
如果所述方法继承自未标记的类,请参阅示例:
特定
package my.package;
public class Alpha {
public …Run Code Online (Sandbox Code Playgroud) 我已经注意到了(非常野蛮地)使用cucumber-JVM,当你定义哪些步骤具有看似相同名称的特征时,它们被认为是可互换的.
Feature: Grab that cash with both hands and make a stash
Scenario: Spend it
Given Jack has 5 dollars
When Jack wants to buy Lear Jet
Then He doesn't have enough cash
Scenario: aquire it
Given Jack is broke
But his wealth is slowly growing
When Jack has 5 dollars
Then He can afford a pack of gum
Scenario: own it
Given Jack is broke
But he has a job that's paid 5 dollar an hour …Run Code Online (Sandbox Code Playgroud) 主要问题 :
我在Eclipse Luna上遇到以下错误:
您有一天来上班,尝试启动eclipse并提高工作效率,但是一旦打开工作台,您会看到所有文件选项卡都出错,例如:
无法确定“ my-project / path / to / file / filename.extension”的URI
而且,如果我在导航器/浏览器视图中签入,我将看不到任何项目。
我最初的几次推荐给其他遇到相同问题的人:
我在eclipse下重新创建了我的项目。
但是:
因此,我对手头的解决方案不满意。
因此,我正在寻找一种自动解决此问题的方法(附带某种脚本或命令行集)或至少某种防止这种情况发生的方法。
到目前为止,我的进度:
我已经进入了工作区文件夹:
workspace
??? .metadata
??? .plugins
??? org.eclipse.core.resources
??? .projects
??? project1-newName
??? project1-oldName
??? project2-newName
??? project2-oldName
Run Code Online (Sandbox Code Playgroud)
因此,我项目的metada仍然存在!
如果再深入一点,我会发现每个文件夹的组织方式如下
.
??? .indexes
? ??? [...]
??? .location
??? .markers
??? org.eclipse.jdt.apt.core
??? org.eclipse.jdt.core
??? state.dat
Run Code Online (Sandbox Code Playgroud)
哪里
.indexes含有脂肪曼波- JAMBO-的分裂指数树组织包含history.index每个叶子
所以我在弄清楚如何在liferay中处理导航时遇到了一些麻烦。我是jsp,portlet和liferay的新手,但我认为我已经用尽所有文档来寻找答案。
我正在寻找一种提交html表单并使用字段设置渲染参数的方法。我想拥有可与常规浏览器导航一起使用的URL,以及可添加书签的URL。我想出了一种方法,可以使用javascript用表单中的新值更新已声明的renderurl,但我正在尝试找出一种更干净的方法。
现在我已经尝试了几种方法..使用此页面
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<%@ page import="com.liferay.portal.kernel.util.ParamUtil" %>
<%@ page import="com.liferay.portal.kernel.util.Validator" %>
<%@ page import="javax.portlet.PortletPreferences" %>
<portlet:defineObjects />
<%
PortletPreferences prefs = renderRequest.getPreferences();
String search = ParamUtil.getString(renderRequest, "search");
%>
<portlet:renderURL var="viewURL">
<portlet:param name="jspPage" value="/view.jsp" />
</portlet:renderURL>
<aui:form action="<%= viewURL %>" method="post">
<aui:input label="search" name="search" type="text" value="<%=search %>" />
<aui:button type="submit" />
</aui:form>
Run Code Online (Sandbox Code Playgroud)
使用post,我将得到结果URL:
http://localhost:8080/web/10157/home?p_p_id=search_WAR_searchportlet_INSTANCE_Kt9C&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_search_WAR_searchportlet_INSTANCE_Kt9C_jspPage=%2Fview.jsp
Run Code Online (Sandbox Code Playgroud)
如果我将表单更改为get,那么我将获得以下网址:
http://localhost:8080/web/10157/home?_search_WAR_searchportlet_INSTANCE_Kt9C_search=123
Run Code Online (Sandbox Code Playgroud)
但是使用带有参数集的renderURL,我会得到的,这是post和get都会返回的组合:
http://localhost:8080/web/10157/home?p_p_id=search_WAR_searchportlet_INSTANCE_Kt9C&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_search_WAR_searchportlet_INSTANCE_Kt9C_jspPage=%2Fview.jsp&_search_WAR_searchportlet_INSTANCE_Kt9C_search=123
Run Code Online (Sandbox Code Playgroud)
因此,就目前而言,我可以使用带有post的表单,并且ParamUtil.getString将识别数据,但是该链接不可收藏,或者可以使用带有get的表单,将信息保留在url中,但是我无法获取ParamUtil识别数据。即使我可以使用get表单来识别数据,但我真的不想使用它,因为如果我要从其他portlet的表单进行提交,则不会保留该参数。据我了解,RenderURLs保留了这些内容。
请原谅我,如果我对这些事情完全不满意。我是jsp,portlet和liferay的新手,但是我对应该如何做很多这些事情很迷茫。
我有一个简单的案例来说明一个更复杂的案例(哦,Legacy Code,我爱你吗,吟游诗人应该以你的名义唱出美妙的歌曲)。
一组类的图片如下:
package org.osef.test;
public final class A {
private static A instance;
public static String status;
private A() {
initPaths();
}
public static A getInstance(){
if(instance==null){
instance = new A();
}
return instance;
}
private void initPaths() {
A.status = "I have been in the method !";
}
public String doStuff() {
return "stuff done ...";
}
}
Run Code Online (Sandbox Code Playgroud)
package org.osef.test;
public class B {
public String doBdo() {
A instance = A.getInstance();
return instance.doStuff();
}
} …Run Code Online (Sandbox Code Playgroud) 我对Cucumber(jvm)都很陌生,这一切看起来都很精致,但是:
我真的不知道如何通过单一方法实现以各种方式(优雅地)编写的多个初始条件(来自各种场景).
例如:
Scenario: I really am bad
Given I really am inexperienced with Cucumber
When I try to work
Then what I produce is of poor quality
Scenario: I am on the way to become good (hopefully)
Given I am a noob
When I learn new things
And I practice
Then my level improves
Run Code Online (Sandbox Code Playgroud)
由于Given I really am inexperienced with Cucumber和Given I am a cuke noob(虽然在语义上不相同)足够接近我以完全相同的方式实现,我希望能够将它们链接到相同的方法,但
@Given("^I really am …Run Code Online (Sandbox Code Playgroud) 我在创建自己的Eclipse Intro页面时遇到了困难(如此处所示).
似乎我的产品ID有一些问题,但我不知道如何获得产品ID,我试图扩展org.eclipse.core.runtime.products但是当它问我想要注册哪个应用程序时我不知道什么回答,它似乎是问题的一部分......任何人都有任何想法?
长话短说:
java中是否有一个简单的语法来访问kotlins反引号函数,例如fun `if`(){...}
长版:
在 Kotlin 中,人们可以编写以下类。
class ShapeShifter {
fun speak() { println("Hello fellow hooman") }
fun `speakLikeA`() { println("Meow") }
fun `speakLikeA`() { println("Bwoof !") }
fun `speakLikeA`() { println("NOOT NOOT ! (you would'nt have so much problems with linux ...)") }
}
Run Code Online (Sandbox Code Playgroud)
这会工作得很好......你所有的 kotlin-ers 同事都可以以你所有的形式与你交谈,如下所示:
ShapeShifter().`speakLikeA`() // would work like a charm
Run Code Online (Sandbox Code Playgroud)
但是当与 java-ist 麻瓜互动时,你的秘密身份将是安全的,因为我很确定 java-ist 只能像这样与你互动:
new ShapeShifter().speak()
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有一种方法可以让 java 普通人访问反引号的 kotlin 函数,而无需诉诸使用黑魔法,例如内省/反射,如下所示:
var tomJedusor = new ShapeShifter();
ShapeShifter.class.getDeclaredMethod("speakLikeA").invoke(tomJedusor); //the forbidden arcane spell …Run Code Online (Sandbox Code Playgroud) 我有一个新问题让我烦恼......
我正在制作一个我想要修复的网页,没有滚动,最重要的是我希望我的主要Div填充aaaaaaaall我的可用空间...
我做了这个代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>There is a @#!¤*-ing blank !</title>
<style type='text/css'>
html {margin:0px;padding:0px;height:100%;overflow:hidden;border: 3px solid green}
div {margin:0px;padding:0px;}
</style>
</head>
<body onload="document.getElementById('mydiv').style.height=document.getElementsByTagName('html')[0].offsetHeight+'px'"><div id="mydiv" style="margin:0px;padding:0px;width:100%;border: 2px solid red"></div></body>
</html>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,即使我的body padding和div margin设置为0,我的body元素边框和div元素边框之间也有一个空白区域...
我曾经读过"更多关于CSS的Eric Meyer",其中包含了解决这个问题的方法,但是很久以前我不记得了......
任何帮助将不胜感激^^.
我的问题非常简单,但我看到它时感到迷茫......我目前正在开发一个位于SVN存储库的Symfony项目.
它整天运作良好但突然崩溃了......
现在我无法启动我网站的任何页面.他们都返回了相同的错误消息
Fatal error: sfAutoload::require() [function.require]: Failed opening required '/Applications/MAMP/htdocs/prjAnnuaire/trunk/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/database/sfDoctrineDatabase.class.php' (include_path='.:/usr/share/php:/usr/share/pear:/home/ar3s/ProjetAnnuaire/prjAnnuaire/trunk/plugins/sfPhpExcelPlugin/config/../lib/PHPExcel') in /home/ar3s/ProjetAnnuaire/prjAnnuaire/trunk/lib/vendor/symfony/lib/autoload/sfAutoload.class.php on line 165
Run Code Online (Sandbox Code Playgroud)
如果有人有任何想法,我全都耳朵......
java ×8
annotations ×3
cucumber-jvm ×2
eclipse ×2
aspectj ×1
autoload ×1
bdd ×1
css ×1
doctrine ×1
easymock ×1
file ×1
generics ×1
guava ×1
html ×1
idioms ×1
include-path ×1
inheritance ×1
javascript ×1
kotlin ×1
liferay ×1
margin ×1
name-clash ×1
null ×1
padding ×1
plugins ×1
pointcut ×1
portlet ×1
powermock ×1
product ×1
symfony1 ×1
syntax ×1
unit-testing ×1