据我所知的的TableView JavaFX中有2列调整政策:CONSTRAINED_RESIZE_POLICY和UNCONSTRAINED_RESIZE_POLICY,但我想列调整大小以适应他们的单元格的内容,我认为它在其他平台(如C#中的DataGridView)一个简单的问题,但解决不了
使用Java 8,我有这样的代码:
if(element.exist()){
// Do something
}
Run Code Online (Sandbox Code Playgroud)
我想转换为lambda风格,
element.ifExist(el -> {
// Do something
});
Run Code Online (Sandbox Code Playgroud)
使用这样的ifExist方法:
public void ifExist(Consumer<Element> consumer) {
if (exist()) {
consumer.accept(this);
}
}
Run Code Online (Sandbox Code Playgroud)
但现在我还有其他情况要打电话:
element.ifExist(el -> {
// Do something
}).ifNotExist(el -> {
// Do something
});
Run Code Online (Sandbox Code Playgroud)
我可以写一个类似的ifNotExist,我希望它们是互斥的(如果exist条件为真,则无需检查ifNotExist,因为有时,exists()方法需要花费很多工作量来检查),但我总是要检查两个倍.我怎么能避免这种情况?
也许"存在"这个词会让别人误解我的想法.你可以想象我还需要一些方法:
ifVisible()
ifEmpty()
ifHasAttribute()
Run Code Online (Sandbox Code Playgroud)
很多人说这是个坏主意,但是:
在Java 8中,我们可以使用lambda forEach而不是传统的for循环.在编程中for,if是两个基本的流程控制.如果我们可以使用lambda作为for循环,为什么使用lambda是个if坏主意?
for (Element element : list) {
element.doSomething();
}
list.forEach(Element::doSomething);
Run Code Online (Sandbox Code Playgroud)
在Java 8中,有Optional …
我尝试使用JSoup登录facebook,当使用控制台应用程序或Tomcat服务器webapp进行测试时,它运行良好:
String userAgent = BrowserVersion.FIREFOX_38.getUserAgent();
Connection conn1 = Jsoup.connect("https://m.facebook.com");
Document document = conn1.userAgent(userAgent).execute().parse();
Element form = document.select("form").get(0);
Elements inputs = form.select("input");
Connection conn2 = Jsoup.connect(form.absUrl("action")).userAgent(userAgent);
for (Element input : inputs) {
conn2.data(input.attr("name"), input.val());
}
conn2.data("email", "mail@gmail.com").data("pass", "mypass");
Connection.Response response1 = conn2.method(Connection.Method.POST).execute();
System.out.println(response1.url());
Document doc1 = response1.parse();
Elements h3 = doc1.select("h3");
for (Element element : h3) {
System.out.println(element.text());
}
Run Code Online (Sandbox Code Playgroud)
response1.url()是https://m.facebook.com/home.php?_rdr
但是,当我尝试使用Google App Engine应用程序时,它无法登录,但会显示包含"您必须先登录"的消息的页面(我猜这个请求尝试访问其他网址)
我更改密码使其不正确,它显示错误的密码页面.所以我认为使用正确的密码,请求会转到正确的页面.但为什么使用正确的密码,它会重定向到其他页面?我不认为控制台应用程序和GAE之间有任何不同的东西使请求不同!
安装JDK时,我在C:\ Program Files\Java\jdk1.7.xxx文件夹中找到了src.zip,但我找不到javafx源代码,我用google搜索但没有找到任何内容(在http://openjdk.java.net上)/projects/openjfx /)那么,javafx是开源的,我在哪里可以获得?
当我尝试使用Evernote clipper扩展时,我看到了一个非常有用的功能.当我点击"文章"时,它给了我一个非常正确的页面主要内容.当我使用Evernote Clipper页面https://developer.chrome.com/extensions/api_index时,看看结果

我查看了evernote字段出来的主要文章,在几个页面中,文章实际上是从第一篇文章标签中提取的.然而,evernote clipper仍然适用于页面不使用那种标签.
我想知道Evernote剪刀能做到这一点吗?是否有任何js库支持来检测包含页面主要内容的主标记.你能给我一些建议去做吗?
先感谢您!
这是文档链接:"映射SQL和Java类型"
让我们看一下8.9.3在行上映射到Java对象类型的JDBC类型:TIMESTAMP - java.sql.Timestamp
但是当我在TIMESTAMP列上使用带有oracle数据库的getObject()时,返回类型是oracle.sql.TIMESTAMP,它不能被强制转换为java.sql.Timestamp
我知道我可以使用getTimestamp()但是我需要getObject()来处理任何结果集,而不管类型如何.
文件错了还是我?
编辑:我找到了解决方案:编辑core.jar,删除除codec包之外的所有包并添加到构建路径,编解码包必须在jar中,不能是源代码我无法理解,这是非常的Lucene的简单代码,它与Lucene核心库一起运行,但是当我使用Lucene核心源时会导致错误.
public static void main(String[] args) throws IOException, ParseException {
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
// Store the index in memory:
Directory directory = new RAMDirectory();
// To store an index on disk, use this instead:
// Directory directory = FSDirectory.open("/tmp/testindex");
IndexWriterConfig config = new IndexWriterConfig(
Version.LUCENE_CURRENT, analyzer);
IndexWriter iwriter = new IndexWriter(directory, config);
Document doc = new Document();
String text = "This is the text to be indexed.";
doc.add(new Field("fieldname", text, TextField.TYPE_STORED));
iwriter.addDocument(doc);
iwriter.close();
// Now search the index: …Run Code Online (Sandbox Code Playgroud) 这似乎是一个简单的问题,但我只能获得单元格的真正价值,而不是显示文本,因为我使用tableColumn.setCellFactory来更改单元格的显示文本(使用方法将实际值转换为我的已禁用文本),所以单元格将具有2个值:显示文本和实际值.我可以重新转换,但这是一个愚蠢的解决方案:(
cell = t.getColumns().get(col).getCellData(row);
Run Code Online (Sandbox Code Playgroud) 我必须做一些报告,并且必须在Java和MySQL的任何日期计算周,但他们有不同的算法.
首先,请注意,通过一些方法,在某一年结束的某些日子里,是明年的第一周.示例:2012-12-31是2013年的第1周(我不记得确切的年份,但它就是这样).所以我必须计算一个约会的正确的一周
在Java中,它基于2个标准,取决于区域设置:
第一周的最短日期(1或4)
Calendar cal = Calendar.getInstance();
int javaWeek = cal.get(Calendar.WEEK_OF_YEAR);
int weekYear = cal.getWeekYear();
Run Code Online (Sandbox Code Playgroud)在MySQL中,它基于2个标准依赖于模式(0到7):
第一周的最小天数为4或第一周包含一周的第一天
SELECT WEEK('2012-12-12', 1);
SELECT YEARWEEK('2012-12-12', 1);
Run Code Online (Sandbox Code Playgroud)在MySQL中,一些模式将计算一周的奇怪结果,例如,一年有0周只有1天,其他几周有整整7天(我认为第1周真的是第一周,第0周是前周或某事).我会忽略这些模式
方案是:我在Java中计算了我的系统区域设置(带有设置:getFirstDayOfWeek()==SUNDAY和的区域设置getMinimalDaysInFirstWeek==1)的日期基础列表的周,我想在MySQL中使用相同的结果进行计算
但是我在MySQL中尝试所有8种模式,没有匹配.我失败了,因为在MySQL中没有第一周最小日的模式计算基础是1(只有一些模式有4),所以我手动setMinimalDaysInFirstWeek(4)和MySQL中的模式6匹配Java中的结果
(我必须编写测试,比较Java和MySQL中2年内每天的结果)
所以我的解决方案是,我必须修复 setMinimalDaysInFirstWeek(4),如果getFirstDayOfWeek()是星期一,我在MySQL中选择模式3,如果 getFirstDayOfWeek()是SUNDAY,我在MySQL中选择模式6.我认为这只是一个临时解决方案而且非常奇怪.
还有一个问题,我真的害怕如果我的系统从MySQL变为其他RDBMS,它将有其他方法而我无法处理所有这些(Oracle中的示例没有WEEK功能).那么有什么方法可以让calc周满足很多RDBMS吗?
我有一个想法是在一个平台(Java或MySQL)中的计算周,然后将结果传递给另一个:
如果从Java传递到MySQL,我将结果传递给查询字符串,或者构建一个包含我的结果的表
如果从MySQL传递给Java,我必须编写一个从Java调用它的过程,并且必须解决问题"找到计算方法满足许多RDBMS的方法"
但我必须计算大量的日期,这些都不能满足我,任何人都有想法解决我的问题?
使用 CsvHelper,当我想要一个自定义解析器时(例如,我想要一个MyBooleanConverter输入字符串为“f”的将是假的,“t”将是“真”)。但是对于每个课程,我都必须编写映射器:
public sealed class MyClassMap : CsvClassMap<MyClass>
{
public MyClassMap()
{
Map( m => m.Id ).Index( 0 ).TypeConverter<MyBooleanConverter>();
}
}
Run Code Online (Sandbox Code Playgroud)
或者
[CsvHelper.TypeConversion.TypeConverter( typeof( MyBooleanConverter) )]
public Boolean MyObjectProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)
如何将MyBooleanConverter每个布尔字段和每个类设置为默认值?