我Converter在JSF 1.2中创建了一个自定义来转换Date对象.日期有一个非常特殊的格式.我使用核心Java SimpleDateFormat类实现了转换器,使用下面的代码注释中显示的格式化程序字符串进行转换.一切正常.
我的问题是线程安全.该SimpleDateFormatAPI文档指出,这不是线程安全的.出于这个原因,我为我的转换器对象的每个实例创建了一个单独的日期格式对象实例.但是,我不确定这是否足够.我的DateFormat对象存储为.的成员DTGDateConverter.
问题:两个线程是否会同时访问JSF中的Converter对象的同一个实例?
如果答案是肯定的,那么我的转换器可能存在风险.
/**
* <p>JSF Converter used to convert from java.util.Date to a string.
* The SimpleDateFormat format used is: ddHHmm'Z'MMMyy.</p>
*
* <p>Example: October 31st 2010 at 23:59 formats to 312359ZOCT10</p>
*
* @author JTOUGH
*/
public class DTGDateConverter implements Converter {
private static final Logger logger =
LoggerFactory.getLogger(DTGDateConverter.class);
private static final String EMPTY_STRING = "";
private static final DateFormat DTG_DATE_FORMAT =
MyFormatterUtilities.createDTGInstance();
// …Run Code Online (Sandbox Code Playgroud) 任何人都可以告诉我如何从Winforms应用程序生成另一个控制台应用程序,但(A)没有在屏幕上显示控制台窗口,(B)仍然获得应用程序的标准输出?目前我有以下内容:
Process SomeProgram = new Process();
SomeProgram.StartInfo.FileName = @"c:\foo.exe";
SomeProgram.StartInfo.Arguments = "bar";
SomeProgram.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
SomeProgram.StartInfo.UseShellExecute = false;
SomeProgram.StartInfo.RedirectStandardOutput = true;
SomeProgram.Start();
SomeProgram.WaitForExit();
string SomeProgramOutput = SomeProgram.StandardOutput.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
如果我将RedirectStandardOutput设置为false,则控制台应用程序将按预期隐藏,但我无法获得标准输出文本.但是,只要我将RedirectStandardOutput设置为true,窗口就会停止隐藏,尽管我能够获得程序的输出.
所以,我知道如何让控制台应用程序运行隐藏,我知道如何获得程序的输出,但我如何让它同时执行?
很多TIA
我正在使用普通的Win32 API(没有MFC或.NET)开发Win32 GUI应用程序.我遇到的问题是使控件显得透明.我想出了一个适用于大多数事情的方法,在Windows Vista +我在WndProc中这样做:
case WM_CTLCOLORSTATIC:
{
SetBkMode((HDC)wParam, TRANSPARENT);
return (INT_PTR)::GetStockObject(NULL_PEN);
}
break;
Run Code Online (Sandbox Code Playgroud)
在Windows XP中,我在WndProc中执行此操作:
case WM_CTLCOLORSTATIC:
{
HBRUSH hbr = (HBRUSH)DefWindowProc(hDlg, message, wParam, lParam);
::DeleteObject(hbr);
SetBkMode((HDC)wParam, TRANSPARENT);
return (LRESULT)(HBRUSH)(COLOR_WINDOW);
}
Run Code Online (Sandbox Code Playgroud)
现在这适用于大多数控件,但是我在组框控件顶部的标签上获得透明背景,该控件在文本中绘制组框线.我开始研究一个只有组合箱的情况,但我确信这是一个必须先解决的问题,我不想重新发明轮子.
是否有经过试验和测试的方法使控件看起来透明?
谢谢,J
我有一个android timepicker,我需要在java代码中获取时间,然后将其转换为具有此外观的字符串:"08:00:00"(小时,分钟,秒)
有人可以帮我做一个简单的方法吗?
代码示例将不胜感激
我有一个小应用程序,我现在正在运行,我想检查是否有任何内存泄漏,所以我把这段代码:
for (unsigned int i = 0; i<10000; i++) {
for (unsigned int j = 0; j<10000; j++) {
std::ifstream &a = s->fhandle->open("test");
char temp[30];
a.getline(temp, 30);
s->fhandle->close("test");
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我cat'ed/proc // status以查看内存是否增加.运行约2分钟后输出如下:
Name: origin-test
State: R (running)
Tgid: 7267
Pid: 7267
PPid: 6619
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 256
Groups: 4 20 24 46 110 111 119 122 1000
VmPeak: 183848 kB
VmSize: 118308 kB
VmLck: 0 kB
VmHWM: 5116 kB …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个可以"蒙皮"的视图控制器 - 也就是说,具有多个外观或个性但使用单个控制器.每个视图都有相同的按钮等,但我希望能够将每个nib文件(皮肤)加载到同一个视图控制器中.我可以创建多个nib文件,但我没有看到如何连接按钮和操作.我可以为多个nib文件指定相同的"文件所有者"吗?(怎么样?).
可以这样做吗?
我想做的事情如下:
SELECT * FROM USER WHERE NAME LIKE '%Smith%';
Run Code Online (Sandbox Code Playgroud)
我在Arel的尝试:
# params[:query] = 'Smith'
User.where("name like '%?%'", params[:query]).to_sql
Run Code Online (Sandbox Code Playgroud)
但是,这变为:
SELECT * FROM USER WHERE NAME LIKE '%'Smith'%';
Run Code Online (Sandbox Code Playgroud)
Arel正确地包装查询字符串'Smith',但因为这是一个LIKE语句,所以它不起作用.
如何在Arel中进行LIKE查询?
PS奖金 - 我其实是想扫描桌子上两个字段,这两个名称和说明,看是否有查询的任意匹配.那会怎么样?
我正在使用jQuery 1.4.4.我有这个源代码:
<div id="area1">
<ul id="testlist" data-filter="false">
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
如何在jQuery中将data-filter属性更改为true?我试过例如:
$('#testlist').attr("data-filter").val(true);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
有人有想法吗?
最好的祝福.
如何根据背景自动获得正确的颜色?如果它的背景图像较暗,则会自动将字体颜色更改为更亮的颜色.有可能吗?任何的想法?
如果默认情况下所有内容都是私有的,那么private关键字的用途是什么?
public class A {
object someObject;
private object someOtherObject;
}
Run Code Online (Sandbox Code Playgroud)
以上两种都不是私人的吗?如果它们都是私有的那么为什么需要关键字本身?