我在导航Java规则以推断泛型类型参数时遇到了一些麻烦.考虑以下类,它具有可选的list参数:
import java.util.Collections;
import java.util.List;
public class Person {
private String name;
private List<String> nicknames;
public Person(String name) {
this(name,Collections.emptyList());
}
public Person(String name,List<String> nicknames) {
this.name = name;
this.nicknames = nicknames;
}
}
Run Code Online (Sandbox Code Playgroud)
我的Java编译器给出以下错误:
Person.java:9: The constructor Person(String, List<Object>) is undefined
Run Code Online (Sandbox Code Playgroud)
但是Collections.emptyList()
返回类型<T> List<T>
,而不是List<Object>
.添加演员表无济于事
public Person(String name) {
this(name,(List<String>)Collections.emptyList());
}
Run Code Online (Sandbox Code Playgroud)
产量
Person.java:9: inconvertible types
Run Code Online (Sandbox Code Playgroud)
使用EMPTY_LIST
而不是emptyList()
public Person(String name) {
this(name,Collections.EMPTY_LIST);
}
Run Code Online (Sandbox Code Playgroud)
产量
Person.java:9: warning: [unchecked] unchecked conversion
Run Code Online (Sandbox Code Playgroud)
而以下更改会使错误消失:
public Person(String name) …
Run Code Online (Sandbox Code Playgroud) 我需要在当前模块中实现一些NLP.我正在寻找一些可以帮助我的好图书馆.我遇到了'LingPipe',但无法完全遵循如何使用它.
基本上,我们需要实现一个功能,其中应用程序可以解释用简体中文输入的客户指令(交付说明).例如:
我似乎无法导入电子邮件模块.每次我这样做都会出错.我已经尝试卸载Python并重新安装,但电子邮件模块只是拒绝工作.我甚至完成了"点击安装电子邮件",它仍然被打破了.我使用的是Windows 7 Home Premium x64,运行x86版本的Python.
这是发生的事情:
c:\Users\Nicholas\Desktop>python
ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import email
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "email.py", line 1, in <module>
import smtplib
File "C:\Python27\lib\smtplib.py", line 46, in <module>
import email.utils
ImportError: No module named utils
>>>
Run Code Online (Sandbox Code Playgroud)
编辑:我已经尝试过python.org和ActivePython中的Python,认为ActivePython可能有效.反正有没有完全删除python及其所有数据并开始100%新鲜?
我有一个20年的项目,我想从RCS迁移到git,而不会丢失历史.所有网页都表明One True Path是通过CVS进行的.但经过一个小时的谷歌搜索和尝试不同的脚本,我还没有找到任何成功将我的RCS项目树转换为CVS的东西.我希望Stackoverflow上的好人会知道实际上有什么用,而不是声称工作和不工作.
(我使用本机SO搜索和Google搜索搜索了Stackoverflow,但如果数据库中有一个有用的答案,我就错过了.)
更新:http : //git.oblomov.eu/rcs-fast-export上的rcs-fast-export
工具于2009年4月14日修复,这个版本似乎对我有用.此工具直接转换为git,没有中间CVS.谢谢Giuseppe和Jakub!
我还记得那些不起作用的事情:
该rcs-to-cvs
脚本船在contrib
的CVS源代码目录
http://git.oblomov.eu/rcs-fast-export上的rcs-fast-export
工具,版本在2010年4月13日之前
该rcs2cvs
脚本在名为"CVS-RCS-如何为Linux的文档"的文档中找到
Eclipse Juno - 在我的工作区中,我在左侧打开了"Package Explorer",在右侧我有6个可见文件选项卡,在"Show List"下我有17个文件.
在这6个可见文件选项卡中,我正在处理第3个文件(abc.java),如果我在'Show List'(xyz.java)下选择一个文件,那么eclipse将xyz.java显示为活动选项卡,显示列表中的下5个文件.我以前的可见文件标签已经消失,现在我有了一组新的可见文件标签.有没有办法让我以前的活动文件'abc.java'在可见文件选项卡下,当前活动文件为'xyz.java'
我的Eclipse Juno SR1不知何故搞砸了.看来我有一个新区域,如果我正确解释它,它被称为"共享区域"(仅来自工具提示).我不能通过常规手段(iE关闭/隐藏)摆脱它.我现在打开的所有文件都在此共享区域中打开,而不是之前打开文件的区域.该区域与正常编辑区域不同,因为它不会到达相同的位置(右上角,菜单下方).
该区域只有最大化和最小化按钮.最大化它将使其最大化,这是预期的.最小化它实际上隐藏了它,但是打开现有文件会将其作为弹出文件列表上的弹出窗口返回.
我似乎没有找到我是如何激活这个功能的,我似乎无法在Eclipse帮助中找到任何激活指令(分别寻找"共享"和"区域"的帮助并不是真的有帮助).
我只是希望这个功能/窗口/透视图消失,让我像以前一样打开文件.有小费吗?
编辑:也许这个区域不叫"共享区域",这可能是错误的.如果没有,它似乎没有任何名称.它只是强制所有编辑者打开新文件,而不是打开它们通常打开的区域.我确定它的方式称为"共享区域"是通过最小化它,然后打开文件.它作为一种弹出窗口(如上所述)打开,并且有一个菜单栏,附有2个图标,"恢复"和"共享区域",这是预先选择的.
这是"停靠"在右边:
这是停靠在下面的区域:
该区域不能以它停靠到Eclipse的某些区域的方式停靠,而是在整个Eclipse窗口甚至在其外部延伸(拖动时).
UPDATE
列出VALUES时我犯了一个小错误.我应该输入":username"而不是":alias".我想这个问题的答案可归功于任何想要它的人的免费统治吗?或者我删除这个问题?
原版的
我一直在使用Yii的活跃记录模式.现在,我的项目需要为一个小事务访问不同的数据库.我认为Yii的DAO对此有好处.但是,我收到了一个神秘的错误.
CDbCommand无法执行SQL语句:SQLSTATE [HY093]:参数号无效:未定义参数
这是我的代码:
public function actionConfirmation
{
$model_person = new TempPerson();
$model = $model_person->find('alias=:alias',array(':alias'=>$_GET['alias']));
$connection=Yii::app()->db2;
$sql = "INSERT INTO users (username, password, ssn, surname
, firstname, email, city, country)
VALUES(:alias, :password, :ssn, :surname
, :firstname, :email, :city, :country)";
$command=$connection->createCommand($sql);
$command->bindValue(":username", $model->alias);
$command->bindValue(":password", substr($model->ssn, -4,4));
$command->bindValue(":ssn", $model->ssn);
$command->bindValue(":surname", $model->lastName);
$command->bindValue(":firstname", $model->firstName);
$command->bindValue(":email", $model->email);
$command->bindValue(":city", $model->placeOfBirth);
$command->bindValue(":country", $model->placeOfBirth);
$command->execute();
$this->render('confirmation',array('model'=>$model));
}
Run Code Online (Sandbox Code Playgroud)
这构造了以下查询(如应用程序日志中所示):
INSERT INTO users (username, password, ssn, surname, firstname, email
, city, country)
VALUES(:alias, :password, :ssn, :surname, …
Run Code Online (Sandbox Code Playgroud) 我的日食有时会非常自发地开始使用100%的CPU.我无法弄清楚为什么它需要那么多CPU使用率.没有像"构建工作区"那样的后台任务.
一段时间后,CPU负载降至0,一切正常.
我在workspace/.metadata/.log
文件中找不到与问题相关的任何信息.
有没有人提示如何弄清楚eclipse的哪个部分如此频繁地使用CPU?有没有办法获得eclipse的线程转储?在kill -3
Eclipse的过程中没有做任何事情.
Eclipse版本:Galileo JavaEE
操作系统:Linux 2.6.31
我正在使用Eclipse v3.5.
在以前的Eclipse版本中,我记得如果我已经使用参数定义了一个方法并且没有在内部使用它,则会出现警告,如下所示:
public void myMethod( int x ) {
// Didn't use x here so a warning appears at the x parameter.
}
Run Code Online (Sandbox Code Playgroud)
但是在v3.5中我没有看到这个警告.我如何在Eclipse中启用它?