问题列表 - 第43500页

调用重载的方法,其中所有参数都实现相同的接口

我的出发点如下:
- 我有一个方法,转换,我重载,根据传入的参数类型不同(参见transform(A a1,A a2)和transform(A a1,B b))在下面的例子中)
- 所有这些参数都实现了相同的接口X.

我想在所有实现X接口的各种对象上应用该转换方法.

我想到的是实现变换(X x1,X x2),它在应用变换的相关变量之前检查每个对象的实例.

虽然它有效但代码看起来很难看,我也担心评估这些各种instanceof和cast的性能开销.这是我用Java做的最好的转换,还是有更优雅和/或更有效的方法来实现相同的行为?

以下是印刷BA的一个简单的工作示例.我正在寻找有关如何改进该代码的示例.在我的真实代码中,我自然有更多的'transform'实现,而且没有一个像下面那样简单.

public class A implements X {
}

public class B implements X {
}

interface X {
}

public A transform(A a1, A a2) {
  System.out.print("A");
  return a2;
}

public A transform(A a1, B b) {
  System.out.print("B");
  return a1;
}

// Isn't there something better than the code below???
public X transform(X x1, X x2) {
  if ((x1 instanceof A) && (x2 instanceof A)) { …
Run Code Online (Sandbox Code Playgroud)

java reflection overloading multiple-dispatch visitor-pattern

1
推荐指数
1
解决办法
185
查看次数

CUDA 中的全局内存与共享内存

我有两个 CUDA 内核可以计算类似的东西。一种是使用全局内存(myfun是一种从全局内存读取大量数据并进行计算的设备函数)。第二个内核将该数据块从全局内存传输到共享内存,以便数据可以在块的不同线程之间共享。我使用全局内存的内核比使用共享内存的内核快得多。可能的原因有哪些?

loadArray仅复制d_xto的一小部分m

__global__ void mykernel(float *d_x, float *d_y, int *d_z, float *d_u, int N, int K, int D)
{

  int tid = blockIdx.x*blockDim.x + threadIdx.x;
  int index = 0;
  float max_s = 1e+37F;


  if (tid < N)
    {

      for (int i = 0; i < K; i++)
        {

          float s = myfun(&d_x[i*D], d_y, tid);

          if (s > max_s)
            {
              max_s = s;
              index = i;
            }
        }

      d_z[tid] = index;
      d_u[tid] …
Run Code Online (Sandbox Code Playgroud)

c++ cuda gpu-shared-memory

2
推荐指数
1
解决办法
5531
查看次数

如何进行现场自动对焦?

当用户打开页面时,我需要关注此字段.我不知道它是否会改变任何东西,但它是在我从PHP文件加载的模态窗口内.

有一个简单的方法吗?

javascript focus

5
推荐指数
2
解决办法
3万
查看次数

如何在Linux中使用包含非Ascii字符串的wchar_t*打开文件?

环境:Gcc/G ++ Linux

我在文件系统中有一个非ascii文件,我打算打开它.

现在我有一个wchar_t*,但我不知道如何打开它.(我信任的fopen只打开char*文件)

请帮忙.非常感谢.

c c++ linux file wchar

5
推荐指数
1
解决办法
2万
查看次数

使用try/catch时无休止的循环问题

我有一个while循环,它应该捕获一个非int输入并要求用户重新输入一个int.然而,它只是无休止地循环错误消息.有没有人知道为什么第二次不允许扫描仪输入?

  while(!enteredInt)
  {
      try
      {
          locus = input.nextInt();
          enteredInt = true;
      }
      catch (Exception e)
      {
          //user didn't type an integer
          System.out.println("You didn't enter a valid number, re-enter point where you will build your city");
      }
  }
Run Code Online (Sandbox Code Playgroud)

java exception

0
推荐指数
1
解决办法
2171
查看次数

Rails:验证多个模型的唯一性

有没有办法在两个不同模型中的列之间验证属性的唯一性.例如:

我有自行车模型和汽车模型.当我创建一个新的自行车时,我想验证自行车的名称是独一无二的,因为没有其他自行车或具有该名称的汽车.我不想把它们放在一个模型中,因为它们具有非常不同的属性.我在轨道上2.3.8

谢谢.

validation ruby-on-rails unique models

2
推荐指数
1
解决办法
1949
查看次数

如何从可变加速度计获得速度(简单的线性运动)?

我想根据加速度计随时计算当前的iphone运动速度,加速度计是可变的.谁能提出任何想法?

iphone accelerometer core-motion

0
推荐指数
1
解决办法
883
查看次数

多个<nav>标签

我们可以在html5中的同一页面上使用多个标签吗?

我在Zeldman.com上看过这篇文章,但对我来说并不完全清楚

<header><nav>links here</nav></header>

<footer><nav>links here</nav></footer>
Run Code Online (Sandbox Code Playgroud)

html5

93
推荐指数
3
解决办法
4万
查看次数

我应该实例化一个新的代表吗?

我刚刚意识到我可以通过两种方式添加事件处理程序:

考虑像这样的事件处理程序:

private void MyEventHandler()
{}
Run Code Online (Sandbox Code Playgroud)

方法1:实例化新的委托

MyObject.MyEvent += new Action(MyEventHandler);
Run Code Online (Sandbox Code Playgroud)

方法2:添加事件处理程序而不实例化新委托

MyObject.MyEvent += MyEventHandler;
Run Code Online (Sandbox Code Playgroud)

应该考虑这两种实现之间有什么区别吗?

.net c# delegates event-handling

6
推荐指数
1
解决办法
1318
查看次数

Javascript 错误会减慢网站的加载时间吗

我有一个门户网站cricandcric.com,我使用 php、java 脚本和 mysql 完成了该门户。

我在 Firefox 中没有看到 java 脚本错误,但在 IE 中看到了错误,我观察到 Firefox 中的网站加载速度比 IE 中更快。

所以我的问题是,Java 脚本错误是否会减慢网站加载时间,即使 Java 脚本放置在页面末尾(Yslow Strategies)

javascript css load

1
推荐指数
1
解决办法
2244
查看次数