我正在研究自定义分页系统并遇到以下问题.当其中一个元素从集合中过滤掉时,最终数组的大小小于所需的大小.因此,我正在寻找一种解决方案,以增加循环内的迭代次数,始终获得由50个元素组成的数组.
$limit = 50; //Number of elements I want to fetch
for($x=0; $x<$limit; $x++){
if ($elementIsNotFiltered) {
//add element to $someArray;
}
else {
//increase the number of iterations, so even if some elements are filtered out,
//the size of $someArray will always be 50
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
所以在工作中我使用的是我们没有编写的API,其中一个方法采用了委托.出于这样或那样的原因,我想到了我有一个适合该签名的扩展方法,所以我想知道它是否可行.我确信这不会让我感到意外,但确实如此.请允许我证明:
说我有这些课程:
public interface IMyInterface
{
}
public class MyClass : IMyInterface
{
}
public static class Extensions
{
public static string FuncMethod(this IMyInterface imy, int x)
{
return x.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
现在让我说我有一个方法签名,看起来像这样:
private static void Method(Func<int, string> func)
{
}
Run Code Online (Sandbox Code Playgroud)
现在我的扩展方法(看起来像它)匹配该签名,但我们都知道扩展方法只是冒烟和镜像,所以它实际上与该签名不匹配.然而,我可以安全地做到这一点:
var instance = new MyClass();
Method(instance.FuncMethod);
Run Code Online (Sandbox Code Playgroud)
我的问题是,这是如何工作的?编译器为我生成了什么以使其可接受.Extension方法的实际签名是一个实例IMyInterface,但Func事实并非在幕后发生了什么?
有问题的代码块如下.代码几乎总是有效,但有时它会永远挂起.该应用程序是一个EJB计时器bean.
实际上,它只挂了一次,我无法重现它.它的生产工作近两年没有任何问题.但是,在测试应用程序的更新版本时,计时器在运行几天后就冻结了,并且从未在上次运行时释放数据库锁.日志清楚地表明它冻结在下面的代码块中的某处.它运行的命令是'chmod'.
public void shellExec(String cmd, File workDir) {
String s = null;
try {
Process p = Runtime.getRuntime().exec(cmd, null, workDir);
int i = p.waitFor();
if (i == 0){
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
// read the output from the command
while ((s = stdInput.readLine()) != null) {
logger.debug(s);
}
}
else {
BufferedReader stdErr = new BufferedReader(new InputStreamReader(p.getErrorStream()));
// read the output from the command
while ((s = stdErr.readLine()) != null) {
logger.debug(s);
}
}
} catch (Exception …Run Code Online (Sandbox Code Playgroud) 这里有没有人使用DTO将数据从控制器传输到视图?如果是这样,您会在哪里建议存储这些文件?/ apps/dtos,然后让他们镜像dir结构的视图?有关使用rspec测试这些动物的任何建议吗?
我在JS中创建了这个实用工具方法:
function IsAuthenticated(userID)
{
var isAuthed = false;
if (userID.length == 0)
return false;
// more logic
if(SomeLogic)
isAuthed = true;
return isAuthed;
}
Run Code Online (Sandbox Code Playgroud)
当我运行这样的东西时,我得到一个对象而不是键入bool:
if(IsAuthenticated)
//code here
Run Code Online (Sandbox Code Playgroud)
我想我需要把它变成一个布尔?
我链接到Proficy Historian,它允许列名称中包含句点.因为数据以非DBMS格式存储,所以我不能openquery用来获取数据,因为表没有设置模式.所以我必须使用四部分名称语法来获取数据.这个例子有效:
SELECT * FROM iHist...[SELECT * FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
但是在'.'附近的语法不正确.
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07][0].F_CV.Value] FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
SERVER.pid_astatus[07][0].F_CV.Value列的名称在哪里
这也与关键字'from'附近的语法错误一致.
SELECT * FROM
iHist...[SELECT [SERVER.pid_astatus[[07]][[0]].F_CV.Value] from ihTrend]`
Run Code Online (Sandbox Code Playgroud)
关于如何让SQL Server将其视为列的任何想法?
编辑:
Martins建议右括号转义括号只能在sql调用的外部工作
SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM iHist...[SELECT * FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
但是它在关键字'from'附近的不正确语法中不起作用.
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
编辑
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value]] FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
我不得不逃脱列逃脱:)
我有这个代码:
Thread[] threadsArray = new Thread[4];
for (int i = 0; i < 4; i++)
{
threadsArray[i] = new Thread(() => c1.k(i));
}
for (int i = 0; i < 4; i++)
{
threadsArray[i].Start();
}
for (int i = 0; i < 4; i++)
{
threadsArray[i].Join();
}
Run Code Online (Sandbox Code Playgroud)
函数k是这样的:
void k(int i)
{
while(true)
Console.WriteLine(i);
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,最后一个线程正在运行并打印4444444 ....为什么不是所有线程都在运行?
我从以前的开发人员那里继承了一个项目.所有ASP .NET代码隐藏文件都包含在.dll中,原始文件不可用.有没有可靠的反编译器产生相当可读的代码?我在浏览其他论坛时听到了混合的反应 - 有人说有些应用程序会反编译.dll文件,有些人说它们只会产生几乎无法使用的汇编代码.思考?
谢谢!
我知道我可以使用serialVersionUID来控制类的版本.我读到我可以添加或删除字段,类仍然兼容,它只使用默认值.
什么时候必须更改serialVersionUID?
这个问题是如此愚蠢...无论如何,我只是找不到正确的信息,因为我看到的每个Scala构造函数示例类都至少使用一个参数.
我希望将这个类从Java翻译成Scala:
public class SubscriptionConverter extends Converter {
public SubscriptionConverter() {
Context ctx = new InitialContext();
UserEJB userEJB = (UserEJB) ctx.lookup("java:global/teachernews/UserEJB");
}
(...)
}
Run Code Online (Sandbox Code Playgroud)
所以我只有一个无参数构造函数.我在Scala中乱搞了这个(),但是我无法得到类似上面那个工作的例子.我如何在Scala中编写它?