infer-hierarchy-type-parameter

null

Лицензия

Лицензия

Категории

Категории

Infer Тестирование приложения и мониторинг Code Analysis
Группа

Группа

com.github.mazine
Идентификатор

Идентификатор

infer-hierarchy-type-parameter
Последняя версия

Последняя версия

1.2.0
Дата

Дата

Тип

Тип

jar
Описание

Описание

infer-hierarchy-type-parameter
null
Ссылка на сайт

Ссылка на сайт

https://github.com/mazine/infer-hierarchy-type-parameter
Система контроля версий

Система контроля версий

https://github.com/mazine/infer-hierarchy-type-parameter

Скачать infer-hierarchy-type-parameter

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/com.github.mazine/infer-hierarchy-type-parameter/ -->
<dependency>
    <groupId>com.github.mazine</groupId>
    <artifactId>infer-hierarchy-type-parameter</artifactId>
    <version>1.2.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.mazine/infer-hierarchy-type-parameter/
implementation 'com.github.mazine:infer-hierarchy-type-parameter:1.2.0'
// https://jarcasting.com/artifacts/com.github.mazine/infer-hierarchy-type-parameter/
implementation ("com.github.mazine:infer-hierarchy-type-parameter:1.2.0")
'com.github.mazine:infer-hierarchy-type-parameter:jar:1.2.0'
<dependency org="com.github.mazine" name="infer-hierarchy-type-parameter" rev="1.2.0">
  <artifact name="infer-hierarchy-type-parameter" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.mazine', module='infer-hierarchy-type-parameter', version='1.2.0')
)
libraryDependencies += "com.github.mazine" % "infer-hierarchy-type-parameter" % "1.2.0"
[com.github.mazine/infer-hierarchy-type-parameter "1.2.0"]

Зависимости

compile (2)

Идентификатор библиотеки Тип Версия
org.jetbrains.kotlin : kotlin-stdlib jar 1.3.10
org.jetbrains.kotlin : kotlin-reflect jar 1.3.10

test (3)

Идентификатор библиотеки Тип Версия
com.google.truth : truth jar 0.31
junit : junit jar 4.12
org.jetbrains.kotlin : kotlin-test-junit jar 1.3.10

Модули Проекта

Данный проект не имеет модулей.

Infer hierarchy type parameters

Travis

Java/Kotlin utility to infer actual type for inherited type parameters

Infer generic types for inherited classes

If you have a class hierarchy where base class has type parameters, and you need to access actual type defined in inherited class you may pass it to constructor or defined an abstract method for that.

Without the library

abstract class Dao<E: Any> {
  abstract val entityType: Class<E>
  fun getTypeName() = entityType.name
}

class UserDao<User>: Dao<User>() {
  override val entityType = User::class.java
}

class GroupDao<Group>: Dao<Group>() {
  override val entityType = Group::class.java
}

With the library

But information about the type variable value for the class UserDao is actually available. You can get it using the method inferTypeParameter from the library.

abstract class Dao<E: Any> {
  open val entityType: Class<E> = inferTypeParameterClass(Dao::class.java, "E", javaClass)
  fun getTypeName() = entityType.name
}

class UserDao<User>: Dao<User>()

class GroupDao<Group>: Dao<Group>()

Check if a method overrides another method considering generics

open class Figure<A> {
    open fun compare(that: A, p: String, i: Int) = false
} 

class Rectangle<B> : Figure<B>() {
    override fun compare(that: B, o: String, i: Int) = true
}

fun check() {
    Rectangle<*>::compare.isOverriding(Figure<*>::compare) // true
}    

Gradle and Maven

Maven Central

Gradle

repositories {
    mavenCentral()
}
dependencies {
     compile 'com.github.mazine:infer-hierarchy-type-parameter:$version'
}

Maven

<dependency>
    <groupId>com.github.mazine</groupId>
    <artifactId>infer-hierarchy-type-parameter</artifactId>
    <version>$version</version>
</dependency>

Версии библиотеки

Версия
1.2.0
1.1.0
1.0.6
1.0.5
1.0.4
1.0.3