为什么这段代码不能编译?
public class A {
public class B extends A {
public B(A a) { }
}
void foo() {
A a = new A();
new B(a) { };
}
}
Run Code Online (Sandbox Code Playgroud)
A.java:[7,17] cannot reference this before supertype constructor has been called
如果进行以下任一更改,则编译成功:
B 是私人的而不是公共的new B(A);而不是new B(A) { }使用javac版本:1.6.0_20
我有这段代码在过去花了一些时间并生成一个可读的字符串来表示它多久以前.
我本以为Timespan.Hours会给你几个小时,即使它过去多了一天,但它看起来像是分解成它的单独组件(天,月等).我怎么会在几小时前得到(即使它超过1天?
有没有更清晰的方法来编写这种类型的代码,因为它似乎非常spagetti-ish.
这是代码
DateTime when = GetDateTimeinPast();
TimeSpan ts = DateTime.Now.Subtract(when);
switch (ts.Days)
{
case 0:
if (ts.Hours < 1)
b.Append( ts.Minutes + " minutes ago");
else
b.Append( ts.Hours + " hours ago");
break;
case 1:
b.Append( " yesterday");
break;
case 2:
case 3:
case 4:
b.Append( "on " + when.DayOfWeek.ToString());
break;
default:
b.Append(ts.Days + " days ago");
break;
}
Run Code Online (Sandbox Code Playgroud) 最近,我开始学习一些Java.从我已经了解到的JVM看起来,JIT使得它在需要CPU周期的操作(即调用方法)上非常快,但也使它对内存感到饥饿.因此,当我需要与以前相同的方法输出相同的输出时,通常更好的方法是将输出存储在变量之前并再次使用它 - 同时将其保存在内存中 - 或者再次调用相同的方法?
Java代码被编译为字节码,它可以在许多平台上移植.但Java也是JIT编译的,它是即时发生的.
这是否意味着Java编译两次?我们首先通过JVM生成字节码和第二个字节码?谢谢.
有可能发起与期望idPerspective的eclipse
那我怎么能得到这个idPerspective?
我曾经使用NHibernate和存储库接口.
在EF中使用此模式的正确方法是什么?
如何实现此存储库接口RepositoryBase<T>?
public interface IRepository<T>
{
T GetById(object id);
void Save(T entity);
T[] GetAll();
void Delete(T entity);
}
Run Code Online (Sandbox Code Playgroud) 病原体对我不起作用.我跟随Adam Lowe在这里发布的提示(还有更多)没有任何成功......
我的vimrc:
filetype off
call pathogen#runtime_append_all_bundles()
filetype plugin indent on
set nocompatible
syntax on
set tabstop=2
set smarttab
set shiftwidth=2
set autoindent
set expandtab
set number
colorscheme darkblue
Run Code Online (Sandbox Code Playgroud)
.vim的内容 - ls .vim/*:
.vim/autoload:
pathogen.vim
.vim/bundle:
nerdcommenter/ vim-haml/ vim-surround/
vim-endwise/ vim-rails/ vim-vividchalk/
Run Code Online (Sandbox Code Playgroud)
通过将它们从GitHub克隆到bundle目录中来安装bundle中的所有插件.
我尝试过使用病原体1.1和1.2,甚至是最新的GitHub,没有任何结果.Vividchalk,Vim-rails和nerdcommenter无法正常工作.我对其他插头的经验很少,所以我不确定它们,但我想它们也没有用.
我正在使用ArchLinux,vim 7.2.385-1(不是最新的,因为最新版本要求我安装ruby1.9,但它仍然是7.2).它已经通过pacman-ArchLinux软件包管理器安装.除了使用病原体之外,没有安装vim插件(我甚至重新安装了带有清洁功能的vim包/usr/share/vim).
我究竟做错了什么?
编辑:
/etc/vimrc http://hpaste.org/fastcgi/hpaste.fcgi/view?id=29685#a29685/usr/share/vim/vimfiles/archlinux.vim
http://hpaste.org/fastcgi/hpaste.fcgi/view?id=29686#a29686我正试图通过SQL注入来保护我页面上的登录表单.在服务器端,我使用Zend框架(Zend_Db,Zend_Db_Table_Abstract),但其内置的注射预防功能:quote,quoteInto,quoteIdentifier不要让自己的工作做好(据我知道如何使用它们).其他方式mysql_real_escape_string,addslashes似乎根本不起作用......
这就是我正在尝试为防御实现的:
function prevent_from_sql_injection($str) {
if(preg_match('/[\'"]/', $str))
{die('attack1'); exit; }// no quotes
elseif(preg_match('/[\/\\\\]/', $str))
{die('attack2'); exit; }// no slashes
elseif(preg_match('/(and|or|null|not)/i', $str))
{die('attack3'); exit; }// no sqli boolean keywords
elseif(preg_match('/(union|select|from|where)/i', $str))
{die('attack4'); exit; }// no sqli select keywords
elseif(preg_match('/(group|order|having|limit)/i', $str))
{die('attack5'); exit; }// no sqli select keywords
elseif(preg_match('/(into|file|case|LOAD_FILE|DUMPFILE|char|schema|AES_DECRYPT|AES_ENCRYPT)/i', $str))
{die('attack6'); exit; }// no sqli operators
elseif(preg_match('/(--|#|\/\*)/', $str))
{die('attack7'); exit; }// no sqli comments
elseif(preg_match('/(=|&|\|)/', $str))
{die('attack8'); exit; …Run Code Online (Sandbox Code Playgroud) 这是我的Android小部件的xml文件:http://pastebin.com/Kqxs5t9E
这段代码在Eclipse中向我展示了一些好的结果,但是只要我将文件发送到我的设备并尝试将小部件添加到我的主屏幕,我就会收到此错误代码,并且小部件显示:"加载小部件时出现问题":
所以呢?我不能在小部件中使用Tablelayout ????
什么是最好的解决方案呢?我可以创建很多相对布局,但我想这不是一个好主意.
感谢您的帮助
其中一个主要的设计原则是接口的程序而不是实现.这在PHP或任何其他弱类型语言中甚至是可能的.
编辑:
我也许没有像我应该的那样清楚地写出这个问题.我不是说php不能使用接口 - 它显然可以.我的意思是设计原则"接口而不是实现的程序"在弱类型语言中变得多余.
java ×3
jit ×2
php ×2
android ×1
c# ×1
datetime ×1
eclipse ×1
jvm ×1
mysql ×1
nhibernate ×1
tablelayout ×1
timespan ×1
vim ×1
vim-plugin ×1
widget ×1