如何在Java中编写一个函数来概括以获取具有不同键类型的map参数?

时间:2016-03-14 20:42:32

标签: java enums

我有两个枚举:

.button_signup{
    background:url('http://localhost/helloworld/images/signup.png ' ) no-repeat;
    height:40px;
    width:100px;
    border:0;
}

 <?php $id = 1; ?>
 <form action="<?php echo base_url('log_c/signup/' . $id); ?>" method="post" >

我希望能够编写一个函数,该函数接收以枚举为键的映射:

$config['base_url'] = '';

我弄清楚如何做的唯一方法如下:

enum Country { US, etc }
enum Language { EN, etc }

这些都不是我所允许的参数的超级特定。(1)通过使它成为Enum的子类而做得最好,但是复杂化了很多逻辑(我在这里大大简化了)。 (3)我必须做大量的下游铸造,我觉得这通常是不好的做法。

我觉得我错过了一些相当明显的东西。

我也知道我可以使用不同的参数编写两个单独的方法声明,但是有很多重复逻辑,我想将该逻辑抽象为函数并避免重复代码。

2 个答案:

答案 0 :(得分:1)

我使用您的选项2:使用泛型类型参数T。在您的示例中,方法为private,因此您可以完全控制哪些方法可以委派给checkMap,因此不必如此关注使用不适当密钥类型的委托。

答案 1 :(得分:0)

你可以使用一个界面 - 让国家和语言实现一些虚构的界面并在方法声明中使用它:

interface Dummy{}
enum Country implements Dummy {...}
enum Language implements Dummy {...}

private checkMap(Map<Dummy, Long> map) {...}